按多列分组 - LINQ

时间:2011-05-19 16:16:43

标签: c# linq

我见过按列分组的示例,但是对于类。我正在尝试为EnumerableDataRowList执行此操作。但我得到“无效的匿名类型成员声明者。”

                    EnumerableDataRowList<DataRow> enumerableRowCollection = new EnumerableDataRowList<DataRow>(reportData.Select("WeekKey <> '0'"));


                var groupedRows1 = from row in enumerableRowCollection
                                  group row by new {row["NETWORK"], row["Week"] };

另外,我看到有些人在某些情况下合并列以获得相同的结果。这样做的任何好处

1 个答案:

答案 0 :(得分:12)

您必须为值分配标识符:

         var groupedRows1 = from row in enumerableRowCollection
                            group row by new { Network = row["NETWORK"], Week = row["Week"] };

如果您正在使用字段或属性引用,通常不需要指定标识符,因为它只会重用该成员的名称 - 但在这种情况下,您正在访问索引器属性,所以没有从中获取名称的方法。