GroupBy,其中分组列位于列表中

时间:2017-05-06 23:14:12

标签: c# linq lambda

我看到了一些按多列分组的示例。我明白了。

我有一个DataTable,我希望根据特定字段获取不同的行。

例如,这有效:(表中有两个以上的字段),但我希望这两个字段不同,返回所有字段)

var rtable = myDataTable.AsEnumerable()
     .GroupBy(a => new { FirstId = a["FirstId"], SecondId = a["SecondId"] })
     .Select(a => a.First()).CopyToDataTable();

我有一个列列表,并希望使用我的列列表作为分组列。我在列表中也有这些字段名称字符串。

简单示例:

 var groupMap = new List<MyMap>{
     new MyMap(){FieldName = "FirstId", SomeOtherThing= "Hi", IsUnique = true},
     new MyMap(){FieldName = "SecondId", SomeOtherThing= "Cats", IsUnique = true },
     new MyMap(){FieldName = "FirstName", SomeOtherThing= "Dogs", IsUnique = false},
     };

我想使用groupMap属性FieldName IsUnique=true来创建要用于GroupBy的列。 由于我有这个列表,如何使用它来创建具有此条件的GroupBy从列表中重新输入内容有点微不足道但是我有其中的几个并想要更多基于MyMap类列表属性的通用解决方案。

0 个答案:

没有答案