我想从嵌套列表中交换值

时间:2018-01-25 07:34:12

标签: c#

我正在编写一个程序,我需要从嵌套列表中交换值。 这是我正在寻找的例子:

我们说我有一个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#中做到这一点? 希望我已经明确了我的观点。

1 个答案:

答案 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[]等。几乎总有一种更好的方式来表示数据。

对于任意数量的输入序列,这需要作为“转置”操作来完成。