添加列表作为对象的属性

问题描述 投票:0回答:1

拥有这样的对象数组:

List<object> myArray = new List<object>();

myArray = [{name = "abc", id = 1},
           {name = "xxx", id = 2},
           {name = "abc", id = 3},
    ];

我希望如果有更多具有相同名称的对象将它们组合成一个对象并将ID保存到列表中。对于上面的数组,所需的结果应该是这样的:

myArray = [{name = "abc", (id = 1, id = 3)},
           {name = "xxx", id = 2},
    ];

也许这不是最好的方式。我想找出任何有用的建议。

c# arrays list object
1个回答
2
投票

只需根据Name-property对数据进行分组:

var result = myList.GroupBy(x => x.Name).Select(x => new 
    { 
        Name = x.Key, 
        Ids = x.Select(y => y.id).ToList()
    });
© www.soinside.com 2019 - 2024. All rights reserved.