gpt4 book ai didi

c# - 如果索引已存在,如何根据索引加入列表并合并成员

转载 作者:太空宇宙 更新时间:2023-11-03 23:46:35 25 4
gpt4 key购买 nike

我有 3 个不同的包含对象的列表。每个对象都有几个成员/变量,其中一个用作特殊标识符(索引)。我想加入这 3 个列表,如果存在具有相同标识符的对象,则应将这 2 个列表元素合并为一个列表元素

List1
id= 1, name= x, value= 10
id= 2, name= tz, value= 10

List2
id= 2, name= y, value= 11

List3
id= 3, name=z, value= 12
id= 4, name hh, value= 16

final List
id= 1, name= x, value= 10
id= 2, name= tz, value= 10, name= y, value= 11
id= 3, name=z, value= 12
id= 4, name hh, value= 16

我对 lambda 表达式和 LINQ 有一些经验,但我无法解决问题。

最佳答案

您可以连接列表并按 id 分组,假设列表包含相同类型的项目。

var newList = list1.Concat(list2).Concat(list3).GroupBy(x => x.id).ToList();

这将为您提供一个 IGrouping 对象列表,其中每个 IGroupingKey 是您的 ID,而 IGrouping 对象是原始列表中类型的 IEnumerable

foreach(var group in newList)
{
var id = group.Key;
Console.Write("id=" + id)
foreach(var item in group)
{
Console.Write(", name=" + item.name + ", value=" + item.value);
}
Console.WriteLine();
}

关于c# - 如果索引已存在,如何根据索引加入列表并合并成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27445412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com