初始化数组数组

ins*_*get 3 c# arrays initialization

我正在尝试制作一些测试数据来测试我的代码的某些功能.为此,我需要一个double[][].我正在尝试使用一个函数,该函数将一个double[][]输入参数作为输入参数并将包含测试数据的局部变量复制到其上.但是,我得到一个我不太了解的错误(我确定这是一个非常基本的错误,这就是为什么我无法谷歌它),理解/修复哪些我会感激任何帮助.

private void makeData(double[][] patterns)
{
    double[][] data = new double[2][];
    // exists so that I can change `data` easily, without having to change the core functionality of copying it over to `patterns`
    data[0] = {1.0,8.0}; // error!
    // copy over everything from data into patterns
}
Run Code Online (Sandbox Code Playgroud)

上面代码中标记的行给出了错误Only assignment, call, increment, decrement, and new objects can be used as a statement.对此,我的反应是"不是data[0] = {1.0,8.0};作业?

我很困惑,所以我很感激任何帮助

Tim*_*Tim 5

你想做

data[0] = new[] {1.0, 8.0};
Run Code Online (Sandbox Code Playgroud)

花括号初始值设定项仅在您创建对象/数组时有效.他们自己不工作.

您可以专门指定类型:

data[0] = new double[] {1.0, 8.0};
Run Code Online (Sandbox Code Playgroud)

但是,如果编译器可以推断出正确的类型(在您的情况下,它可以),则不必如此.