[英]c# LINQ AsEnumerable Groupby Where
我有一个要返回到UI层的数据表。
我有多个具有相同FirstId值的表。 在FieldOne中,可能会有一些值。 我只想将FieldOne为null的记录分组。
我用.Where和.Groupby尝试了以下LINQ语句,但是.Where删除了FieldOne中具有值的所有记录,然后执行GroupBy。 在UI网格中,缺少具有FieldOne值的记录。 我只想将记录与空的FieldOne值组合在一起,而仍然保留具有FieldOne值的记录。 谢谢。
MyDataAsEnumerable()
.Where(f => f.Field<string>("FieldOne") == null)
.GroupBy(r => new { pp1 = r.Field<int>("FirstId") })
.Select(g => g.First())
.CopyToDataTable();
您可以创建一个人工分组密钥:
.GroupBy(
r => new { pp1 = f.Field<string>("FieldOne") == null ? -1 : r.Field<int>("FirstId") })
在这里,我使用-1
作为技巧来创建一个单独的组。 确保未使用此int值。 您也可以精确解决此问题,但希望可以。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.