gpt4 book ai didi

c# - LINQ GroupBy 仅在键不为空时选择

转载 作者:行者123 更新时间:2023-12-02 02:18:12 25 4
gpt4 key购买 nike

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

我正在制作这个 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 输入为 String? 而不是 String

如果是这样,则添加 .Where( r => r.Name != null ) 步骤,然后将 ! 添加到 .GroupBy 步骤,因为不幸的是,这是 C# 8.0 编译器的可空性分析还不够智能,无法检测到的情况之一。

return result
.Where( r => r.Name != null )
.GroupBy( r => r.Name! )
.Select( grp =>
new SymbolField(
name : grp.Key,
something: string.Join( separator: string.Empty, grp.Select( g => g.Symbol ) )
)
);

关于c# - LINQ GroupBy 仅在键不为空时选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66865506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com