gpt4 book ai didi

c# - 当结构不匹配时,在 C# 中组合两个对象列表

转载 作者:太空狗 更新时间:2023-10-30 00:23:26 24 4
gpt4 key购买 nike

我有两个类(class)

Class One{
int id;
string name;
int total;
int val2;
int level;
}


Class Two{
int id;
string name;
string parentName;
int parentId;
int level;
}

第一类包含有关 id、name 和一些数字字段的信息。另一方面,第二类包含 id、名称(其中包含与第一类相同的数据),但它还包含层次信息。比如谁是当前节点的父节点和级别信息(在第一类中可用)

我需要根据 Id 字段合并两个类并生成如下结果:

class Three{
int id;
string name;
string parentName;
int parentId;
int level;
int total;
int val2;
}

在 C# 中获得所需结果的最有效方法是什么。如果列表相同,我们可以使用 Concat 方法。

最佳答案

您可以使用 LINQ 的 Join()方法:

List<One> l1 = .... // your source list of One
List<Two> l2 = .... // your source list of Two

List<Three> =
l1
.Join(
l2,
x1 => x1.id,
x2 => x2.id,
(x1, x2) => new Three
{
id = x1.id,
name = x1.name,
parentName = x2.parentName,
parentId = x2.parentName,
level = x1.level,
total = x1.total
val2 = x1.val2
})
.ToList();

这根据相同的 id 组合了两个源列表的元素。结果是通过组合 OneTwo 的匹配实例的值创建的 Three 实例列表。

关于c# - 当结构不匹配时,在 C# 中组合两个对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083624/

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