C# 在c语言中将List转换为string[][]

C# 在c语言中将List转换为string[][],c#,web-services,C#,Web Services,在c语言中创建Web服务时,我发现回传交错数组非常有用,例如字符串[][] 我在代码中还发现了一个简单的技巧,即创建一个列表并通过ToArray调用进行转换 e、 g 我希望能够采用类似的解决方案,但我想不出如何在不使用循环之类的方法的情况下,对3级锯齿数组或字符串[][]执行类似的操作 问候 Martin您可以通过执行选择操作,使用ToArray将每个内部列表转换为数组,然后使用ToArray转换这些结果: 以此类推,达到您想要达到的深度。要清楚,这并不是在避免循环,而是将这些循环的实现隐藏在

在c语言中创建Web服务时,我发现回传交错数组非常有用,例如字符串[][]

我在代码中还发现了一个简单的技巧,即创建一个列表并通过ToArray调用进行转换

e、 g

我希望能够采用类似的解决方案,但我想不出如何在不使用循环之类的方法的情况下,对3级锯齿数组或字符串[][]执行类似的操作

问候
Martin

您可以通过执行选择操作,使用ToArray将每个内部列表转换为数组,然后使用ToArray转换这些结果:


以此类推,达到您想要达到的深度。

要清楚,这并不是在避免循环,而是将这些循环的实现隐藏在LINQ中。但这是正确的答案。@RobertLevy:是的,它只是在外观更干净的意义上避免了循环,在内部,是的,它仍然循环-不幸的是,任何从列表到数组的转换在某一点上都会显式或隐式执行循环…@RobertLevy:实际上,List.ToArray只是执行一个数组。复制,因为列表的底层存储已经是一个数组。@DStanley:很高兴知道,我忘记了List已经有一个ToArray实现…@DStanley,在某种程度上,它仍将执行循环。如果它处于较低的级别,则可能是一个更有效的循环,但在某个点上,列表中的每一位数据都被复制到一个新位置。这里的要点主要是,这个操作充其量是沉淀物的osizeofdimensions^numberOfDimensions。这不是一些人认为的那样。
public string[][] myws() {
    List<string[]> output = new List<string[]>();
    return output.ToArray();
}
        var x = new List<List<string[]>>();

        string[][][] y = x.Select(a => a.ToArray()).ToArray();