我有一个结构对象列表
string source, string target, int count
Run Code Online (Sandbox Code Playgroud)
样本数据:
sourcea targeta 10
sourcea targetb 15
sourcea targetc 20
Run Code Online (Sandbox Code Playgroud)
我的另一个对象列表是结构
string source, int addnvalueacount, int addnvaluebcount, int addnvalueccount
Run Code Online (Sandbox Code Playgroud)
样本数据:
sourcea 10 25 35
Run Code Online (Sandbox Code Playgroud)
我希望将第二个列表更改为第一个列表结构,然后使用第一个列表进行联合all(concat).
所以结果应该如下所示:
sourcea targeta 10
sourcea targetb 15
sourcea targetc 20
sourcea addnlvaluea 10
sourcea addnlvalueb 25
sourcea addnlvaluec 35
Run Code Online (Sandbox Code Playgroud)
所有帮助都是真诚的感谢..
谢谢
我建议Concat用SelectMany; 为你提供
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),
};
Run Code Online (Sandbox Code Playgroud)
为了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),
}));
Run Code Online (Sandbox Code Playgroud)