使用LINQ方式初始化Jagged数组

Jam*_* M. 9 c# linq arrays initialization jagged-arrays

我有一个二维锯齿状数组(虽然它总是矩形),我使用传统的循环初始化:

var myArr = new double[rowCount][];
for (int i = 0; i < rowCount; i++) {
    myArr[i] = new double[colCount];
}
Run Code Online (Sandbox Code Playgroud)

我想也许一些LINQ函数会在一个语句中给我一个优雅的方法来做到这一点.但是,我能想出的最接近的是:

double[][] myArr = Enumerable.Repeat(new double[colCount], rowCount).ToArray();
Run Code Online (Sandbox Code Playgroud)

问题是它似乎正在创建一个单独的double[colCount]并为每行分配一个新数组的intsead分配引用.有没有办法做到这一点,而不是太神秘?

Amy*_*y B 24

double[][] myArr = Enumerable
  .Range(0, rowCount)
  .Select(i => new double[colCount])
  .ToArray();
Run Code Online (Sandbox Code Playgroud)