繁体   English   中英

c# 按索引分组列表列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM