微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LINQ GroupBy 只选择键不为空的地方

如何解决LINQ GroupBy 只选择键不为空的地方

这可能是一个简单的答案。

我正在制作这个 LINQ 表达式,其中我按“名称”对列表进行分组,然后创建一个 SymbolField 集合,其中将组键(名称)用作名称,并将值连接在一起作为第二个参数。

但问题更多,如何避免可能的空引用?

如果您查看图片,您会发现“可能”存在 group.key 为 null 的情况。

我只想选择非空的。如何根据我的代码执行此操作?

return result
    .GroupBy(r => r.Name)
    .Select(group =>
        new SymbolField(group.Key,string.Join(string.Empty,group.Select(g => g.Symbol))));

enter image description here

解决方法

我认为这是针对 Linq-to-Objects(而不是 Linq-to-Entities),您看到的消息是 C# 8.0 #nullable 警告,因为 r.Name 的类型为 {{1 }} 而不是 String?

如果是这样,那么添加一个 String 步骤,然后在 .Where( r => r.Name != null ) 步骤中添加一个 ! 因为不幸的是,这是 C# 8.0 编译器的可空性分析不是的情况之一t 足够聪明,可以检测(还)。

.GroupBy

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。