gpt4 book ai didi

c# - 合并两个具有不同结构的列表 C#

转载 作者:太空狗 更新时间:2023-10-29 21:21:24 27 4
gpt4 key购买 nike

我有一个具有结构的对象列表

string source, string target, int count

示例数据:

sourcea      targeta      10
sourcea targetb 15
sourcea targetc 20

我的另一个对象列表是有结构的

string source, int addnvalueacount, int addnvaluebcount, int addnvalueccount

示例数据:

sourcea    10    25   35

我希望将第二个列表更改为第一个列表结构,然后对第一个列表执行 union all(concat)。

所以结果应该如下所示:

sourcea      targeta      10
sourcea targetb 15
sourcea targetc 20
sourcea addnlvaluea 10
sourcea addnlvalueb 25
sourcea addnlvaluec 35

真诚感谢所有帮助..

谢谢

最佳答案

我建议使用 SelectMany 进行 Concat;只要你有

List<A> listA = new List<A> {
new A ("sorcea", "targeta" , 10),
new A ("sorcea", "targetb" , 15),
new A ("sorcea", "targetc" , 20),
};

List<B> listB = new List<B> {
new B ("sourcea", 10, 15, 35),
};

为了Concat,你所要做的就是添加SelectMany:

var result = listA
.Concat(listB
.SelectMany(item => new [] { // turn single B item into three A
new A(item.source, "addnvaluea", item.addnvalueacount),
new A(item.source, "addnvalueb", item.addnvaluebcount),
new A(item.source, "addnvaluec", item.addnvalueccount),
}));

关于c# - 合并两个具有不同结构的列表 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41236790/

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