我想创建一个按2个字段分组的查询,并使用Linq和C#计算这些组合字段的数量

时间:2012-02-14 23:13:07

标签: c# linq

我想创建一个按2个字段分组的查询,并使用Linq和C#计算这些组合字段的数量。然后我想将查询写入另一个DataTable。我遇到的当前问题是Foreach Staement返回一个关于输入文件太大的错误。我不清楚.Key做了什么。 (我从其他帖子中借用了代码。)我需要将Type和Stage组合在一起。我需要的正确语法是什么?谢谢。

      var GroupedDataQuery = from row in dTableFilteredCol1.AsEnumerable()
                               group row by row.Field<string>("Type")
                               into grp 
                               select new {
                                   Type = grp.Key,
                                   Stage = grp.Key,
                                   A_Count = grp.Count() 
                               };
        //
        DataTable dTable = new DataTable();
        foreach (var result in GroupedDataQuery)
        {
            dTable.Rows.Add(
            new object[] 
            {
             result.Type,
             result.Stage,
             result.A_Count
            });
        }
        return dTable;
    }

1 个答案:

答案 0 :(得分:1)

如果TypeStage是源行的不同字段,那么您可能需要类似

的内容
        var GroupedDataQuery = from row in dTableFilteredCol1.AsEnumerable()
                               let type = row.Field<string>("Type")
                               let stage = row.Field<string>("Stage")
                               group row by new { type, stage }
                               into grp
                                   select new
                                   {
                                       Type = grp.Key.type,
                                       Stage = grp.Key.stage,
                                       A_Count = grp.Count()
                                   };