[英]c# grouping list of list by index
我来自 python 编程,对 c# 有一点了解。 我想将以下内容分组:
List<List<dynamic>> data = new List<List<dynamic>>();
data.Add(new List<dynamic> {"a", "z", "m", 4});
data.Add(new List<dynamic> {"b", "x", "n", 2});
data.Add(new List<dynamic> {"b", "x", "n", 1});
data.Add(new List<dynamic> {"c", "y", "n", 3});
data.Add(new List<dynamic> {"a", "z", "m", 5});
data.Add(new List<dynamic> {"a", "y", "m", 6});
如何在不仅按索引使用键的情况下对上面的列表进行分组? 我希望 output 是:
{
{"a", "z", "m", {4, 5}},
{"b", "x", "n", {2, 1}},
{"c", "y", "n", {3}},
{"a", "y", "m", {6}}
}
我使用了丹尼斯方法。
var lstOutput=data.GroupBy(_ => (_[0], _[1], _[2]), _ => (_[0],_[1],_[2],_[3]))
.Select(grp => {
dynamic first=null;
first = new List<dynamic>(){
grp.Key.Item1,
grp.Key.Item2,
grp.Key.Item3,
grp.ToList().Select(x=>x.Item4).ToList()
};
return first;
}).ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.