添加列表作为对象的属性

时间:2018-05-03 14:08:40

标签: c# arrays list object

拥有这样的对象数组:

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},
    ];

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

1 个答案:

答案 0 :(得分:2)

只需根据Name - 属性

对数据进行分组
var result = myList.GroupBy(x => x.Name).Select(x => new 
    { 
        Name = x.Key, 
        Ids = x.Select(y => y.id).ToList()
    });