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中使用Group By时出错_C#_Linq - Fatal编程技术网

C# 在LinQ中使用Group By时出错

C# 在LinQ中使用Group By时出错,c#,linq,C#,Linq,我对Linq比较陌生,正在尝试根据我的Linq查询进行分组,但得到的错误不包含字段值 下面是我的linq查询。谁能帮我一下吗 var name = dt1.AsEnumerable() .Where(p => (int)p["Age"] >= 29) .GroupBy(p =>p.Field<string>("Role")) .Select(p => new{ID = p.Field<int>("ID"),Name =p.F

我对Linq比较陌生,正在尝试根据我的Linq查询进行分组,但得到的错误不包含字段值

下面是我的linq查询。谁能帮我一下吗

var name = dt1.AsEnumerable()
    .Where(p => (int)p["Age"] >= 29)
    .GroupBy(p =>p.Field<string>("Role"))
    .Select(p => new{ID = p.Field<int>("ID"),Name =p.Field<string>("Name"),Role = p.Field<string>("Role"),Age = p.Field<int("Age")});
正确代码:

var name = dt1.AsEnumerable()
                  .Where(p => p.Field<int>("Age") >= 29)
                  .GroupBy(p =>p.Field<string>("Role"))
                  .Select(q => q.Select(p => new{ID = p.Field<int>("ID"),Name =p.Field<string>("Name"),Role = p.Field<string>("Role"),Age = p.Field<int>("Age")}));
说明:

在这种情况下,GroupBy将创建IEnumerable 当您进行选择时,您将得到一个IGrouping,您需要在这个IGrouping上进行进一步的选择,以获得用于创建结果匿名类型的确切元素DataRow,如本例所示
请参阅选择分组依据中的字段。Lambda exp和c linq均可用。

groupbby的目的是什么?请添加更多信息,请添加此作为评论,您的终端没有任何附加值谢谢您的解释。这个解决方案很有效。