c# - 在 LinQ 中使用 Group By 时出错

标签 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.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<string,DataRow>>在这种情况下
  • 当你做 Select , 你得到 IGrouping ,您需要进一步做 Select得到确切的元素 DataRow用于创建结果 Anonymous Type在这种情况下

关于c# - 在 LinQ 中使用 Group By 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40584455/

相关文章:

c# - 程序集无法在受限制的 AppDomain 中加载

c# - 使用 LINQ 创建等待任务

c# - 如果并非所有源属性都匹配,AutoMapper 无法阻止空源值

c# - 在 ItemsControl 内的 DataTemplate 内的 Button 的 WPF Databinding ContextMenu

c# - 如何使用 LINQ 从不同的值列表创建逗号分隔的字符串?

c# - 制作智能感知/自动完成列表时过滤字符串列表的最快方法是什么?

c# - 使用 LINQ 从 XML 中选择多个节点

c# - Asp.net MVC 4 Ajax.BeginForm 提交 + mvc.grid - 页面重新加载

c# - 如果查询未返回任何内容,linq 选择项的默认值

c# - 将 IQueryable 与 IEnumerable 连接成 IQueryable