基本上我有两个不同List
List<string> result = new List<string>;
List<string> outputs= new List<string>;
在循环中填充输出列表,循环结束后,将在result
列表中添加outputs
列表。
因此在循环结束后输出将具有不同的值。
例如,在第一循环结束之后,output
列表具有如下数据:
exampleData1
exampleData2
exampleData3
等等
因此result
列表现在将具有这三个示例数据。
现在,循环将再次命中,并加载不同的数据,如:
exampleData1.1
exampleData2.1
exampleData3.1
现在它应该将这三个示例数据添加到result
列表中:
因此现在结果列表应该如下所示:
exampleData1, exampleData1.1
exampleData2, exampleData2.1
exampleData3, exampleData3.1
所以它应该在每个loop
之后继续,在output
列表改变之后,它应该像一个字符串一样并排添加。
我试过这样的事情:
foreach (var (item1, item2) in output.Zip(output, (xo, y) => (xo, y)))
result.Add($" {item1}, {item2}");
但这只是将现有的列表并排添加,这样我就有了相同值的两倍。
我希望我已经解释清楚了,如果没有,请让我知道。
2条答案
按热度按时间zrfyljdw1#
Zip
是个好主意,但是要小心。如果序列的元素数不同,则该方法合并序列,直到到达其中一个序列的末尾。
因为
result
为空,所以在开始之前就已经到达了结尾。解决方案是使用Zip
没有迭代的元素来完成:c6ubokkw2#
看看这个:https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.zip?view=net-7.0我认为您的代码中有一个错误。您将
outputs
与outputs
(即其本身)“压缩”,您需要将其与result
压缩。已更新以下是完整的控制台应用解决方案: