Tag: jagged arrays

以LINQ方式初始化Jagged数组

我有一个二维锯齿状数组(虽然它总是矩形),我使用传统的循环初始化: var myArr = new double[rowCount][]; for (int i = 0; i < rowCount; i++) { myArr[i] = new double[colCount]; } 我想也许一些LINQ函数会在一个语句中给我一个优雅的方法来做到这一点。 但是,我能想出的最接近的是: double[][] myArr = Enumerable.Repeat(new double[colCount], rowCount).ToArray(); 问题是它似乎正在创建一个double[colCount]并为每行分配一个新数组的intsead分配引用。 有没有办法做到这一点,而不是太神秘?

在C#中从锯齿状数组转换为双指针

这里有一个简单的问题:有没有办法从锯齿状数组转换为双指针? 例如,将double[][]转换为double** 不幸的是,这不能仅仅通过强制转换(就像它可以在普通的旧C中一样)来完成。 使用fixed语句似乎也无法解决问题。 在C#中是否有任何(最好尽可能高效)的方法来实现这一目标? 我怀疑解决方案可能不是很明显,尽管我希望尽管是直截了当的。

初始化锯齿状数组

我想在C#中创建数组10 * 10 * 10,如int[][][] (不是int[,,] )。 我可以写代码: int[][][] count = new int[10][][]; for (int i = 0; i < 10; i++) { count[i] = new int[10][]; for (int j = 0; j < 10; j++) count[i][j] = new int[10]; } 但我正在寻找一种更美好的方式。 可能是这样的: int[][][] count = new int[10][10][10];

如何从多维数组中获取维(切片)

我试图找出如何从多维数组中获取单个维度(为了论证,让我们说它是2D),我有一个多维数组: double[,] d = new double[,] { { 1, 2, 3, 4, 5 }, { 5, 4, 3, 2, 1 } }; 如果它是一个锯齿状的数组,我只需要调用d[0] ,这会给我一个{1, 2, 3, 4, 5}的数组,有没有办法可以用2D数组实现相同的效果?

如何将数组列表转换为多维数组

我需要将以下集合转换为double [,]: var ret = new List(); 列表中的所有数组都具有相同的长度。 最简单的方法ret.ToArray()产生double [] [],这不是我想要的。 当然,我可以手动创建一个新数组,并在循环中复制数字,但是有更优雅的方式吗? 编辑:我的库是从另一种语言Mathematica调用的,该语言尚未在.Net中开发。 我不认为该语言可以利用锯齿状数组。 我必须返回一个多维数组。