Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想交换嵌套列表中的值_C# - Fatal编程技术网

C# 我想交换嵌套列表中的值

C# 我想交换嵌套列表中的值,c#,C#,我正在编写一个程序,需要从嵌套列表中交换值。 以下是我正在寻找的示例: 假设我有一个列表,其中这些列表包含两行,如下所示: {“id1”,“id2”,“id3”},{1,2,3} 现在,我想让它如下所示: {“id1”,1},{“id2”,2},{“id3”,3} 我怎么能在C#中做到这一点? 希望我已经澄清了我的观点。对于2个输入序列,这可以被视为一个“zip”操作: List<object[]> list = new List<object[]> { new

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

假设我有一个
列表
,其中这些列表包含两行,如下所示:

{“id1”,“id2”,“id3”},{1,2,3}

现在,我想让它如下所示:

{“id1”,1},{“id2”,2},{“id3”,3}

我怎么能在C#中做到这一点?
希望我已经澄清了我的观点。

对于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();
List List=新列表
{
新对象[]{“id1”、“id2”、“id3”},
新对象[]{1,2,3},
};
var rotated=Enumerable.Zip(列表[0],列表[1],
(x,y)=>新对象[]{x,y}).ToList();
注意:我建议不要在这里使用大量的
object[]
等。几乎总是有更好的方法来表示数据



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

请向我们展示您已经尝试过的操作。这只适用于两行,但假设我有更多行。实际上这是一个未知的片段。@Jaydeep所以你在寻找一个“转置”方法?是的,我相信这就是我想要做的。@Jaydeep使用矩形数据要容易得多<代码>列表是参差不齐的-意思是:不能保证每个内部项目都是相同的长度,但最终不会有很大的不同:,等等谢谢你,马克,我相信下面的帖子更有用(特别是第一个答案)