C# 使用linq以列表的形式获取分组值集
我获取一个datatable并查找特定键的所有行,该键在表中的项少于该键值的三个。我可以很好地做到这一点,它返回一个分组,其中键是我想要分组的id,数据行列表对于每个键值至少不存在三次。现在,我想得到所有失败的数据行的直接列表。我做这件事有困难。我所能做的似乎就是得到一个列表C# 使用linq以列表的形式获取分组值集,c#,linq,group-by,C#,Linq,Group By,我获取一个datatable并查找特定键的所有行,该键在表中的项少于该键值的三个。我可以很好地做到这一点,它返回一个分组,其中键是我想要分组的id,数据行列表对于每个键值至少不存在三次。现在,我想得到所有失败的数据行的直接列表。我做这件事有困难。我所能做的似乎就是得到一个列表 var rows = from dr in stagingTable.AsEnumerable() group by dr.Field<long>("KEY_ID") into g where g.Count(
var rows = from dr in stagingTable.AsEnumerable()
group by dr.Field<long>("KEY_ID") into g
where g.Count() < 3
select new {ID = g.Key, Values = g};
var rows=来自stagingTable.AsEnumerable()中的dr
按dr.Field(“密钥ID”)分组为g
其中g.Count()<3
选择新的{ID=g.Key,Values=g};
现在我有了分组信息,我想要一个在所有组中都可以找到的所有数据行的直接列表。做g.ToList()只会给我一个列表
var rows = from dr in stagingTable.AsEnumerable()
group by dr.Field<long>("KEY_ID") into g
where g.Count() < 3
select new {ID = g.Key, Values = g};
有什么建议吗 如果您想展平该列表:
var flattened = rows.SelectMany(x=>x.Values).ToList();