Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用linq以列表的形式获取分组值集_C#_Linq_Group By - Fatal编程技术网

C# 使用linq以列表的形式获取分组值集

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(

我获取一个datatable并查找特定键的所有行,该键在表中的项少于该键值的三个。我可以很好地做到这一点,它返回一个分组,其中键是我想要分组的id,数据行列表对于每个键值至少不存在三次。现在,我想得到所有失败的数据行的直接列表。我做这件事有困难。我所能做的似乎就是得到一个列表

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();