在C#中列出Jagged数组

ooo*_*a s 2 c# arrays list

我有一份清单

List<int> list = new List<int>();
Run Code Online (Sandbox Code Playgroud)

现在我想将它添加到Jagged数组中

int[][] A = new int[][] { list.ToArray() };
Run Code Online (Sandbox Code Playgroud)

这个代码在顶部是可以的,但问题是列表中的所有值都添加在第一个块中!那么,这将解决:

int[] x1 = list.ToArray();
int[][] A = new int[][] { new[] { x1[0] }, new[] { x1[1] }, new[] { x1[2] }, new[] { x1[3] } };
Run Code Online (Sandbox Code Playgroud)

但是(上面的代码)我现在已经手动完成了这个,这只是列表中我列出的前四个索引.

如何将整个列表(所有索引)添加到我的锯齿状数组(使用圆圈或其他方法).

Tra*_*s J 5

使用投影.

这将遍历列表,创建一个具有当前迭代唯一值的新数组,然后通过创建所有这些数组的数组来结束.

int[][] A = list.Select(i => new[] { i }).ToArray();
Run Code Online (Sandbox Code Playgroud)

顺便说一下,正如[@maccettura]所说,这是一个锯齿状的数组(数组的每个成员本身也是一个数组).

  • @nicomp:确实如此.请参阅https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/arrays/jagged-arrays:"锯齿状数组是一个数组,其元素是数组." (4认同)