我正在编写一个程序,我需要从嵌套列表中交换值。 这是我正在寻找的例子:
我们说我有一个List<object[]>
,其中这些列表包含两行,如下所示:
{&#34; id1&#34;,&#34; id2&#34;,&#34; id3&#34;},{1,2,3}
现在我想让它像下面这样:
{&#34; id1&#34;,1},{&#34; id2&#34;,2},{&#34; id3&#34;,3}
我怎样才能在C#中做到这一点? 希望我已经明确了我的观点。
答案 0 :(得分:3)
使用2个输入序列,可以将其视为“zip”操作:
List<object[]> list = new List<object[]>
{
new object[] {"id1", "id2", "id3" },
new object[] {1,2,3},
};
var rotated = Enumerable.Zip(list[0], list[1],
(x, y) => new object[] { x, y }).ToList();
注意我建议不要在这里使用大量的object[]
等。几乎总有一种更好的方式来表示数据。
对于任意数量的输入序列,这需要作为“转置”操作来完成。