C#手动填充双[] []

时间:2013-02-11 10:26:20

标签: c# arrays

我只是在试用一个源代码。 此源代码包含以下行:

double[][] inputs = sourceMatrix.Submatrix(null, 0, 1).ToArray();

最初,这个“输入”是用矩阵填充的,但我仍然缺乏使用这个矩阵的经验。我首先想用一些手工编码的值来测试它。

有人可以告诉我如何用一些值填充double [] []吗?

我还没有真正体验过C#。我猜[] []表示三维数组。

在VB6中,我只想说

Redim inputs(2,2)

然后:

inputs(0,0) = 64
inputs(0,1) = 92
inputs(0,2) = 33
inputs(1,0) = 4
inputs(1,1) = 84
inputs(1,2) = 449

等...

但我想在C#中并不容易。 如果有人可以提供帮助,我会很高兴。

谢谢。

5 个答案:

答案 0 :(得分:9)

double[][]是一个锯齿状数组 - 它是一个数组数组。要填充它,您将使用一组double[]数组填充外部数组。但是,我希望你想要一个矩形数组:double[,],例如new double[3,2]。初始化这样的数组有一个简写:

double[,] data = new double[2, 3] { { 64, 92, 33 }, { 4, 84, 449 } };
double val = data[1, 2]; // 449.0

答案 1 :(得分:1)

你有一个数组数组。所以你应该像这样初始化它们:

double[][] inputs = new double[][]
    {
        new double[] { 1, 2, 3 },
        new double[] { 4, 5, 6 },
        new double[] { 7, 8, 9 }
    };

如果你有一个二维数组(inputs[,])那么它将是:

double[,] inputs = new double[,]
    {
        { 1, 2, 3 },
        { 4, 5, 6 },
        { 7, 8, 9 }
    };

但正如Jon Skeet所说,阅读数组是你应该做的第一件事。

答案 2 :(得分:1)

要保持简单:

double[][] inputs = new double[3][];
inputs[0] = new double[3];
inputs[1] = new double[3];
inputs[2] = new double[3];

inputs[0][0] = 1;
inputs[0][1] = 2;
inputs[0][2] = 3;
inputs[1][0] = 4;
inputs[1][1] = 5;
inputs[1][2] = 6;
inputs[2][0] = 7;
inputs[2][1] = 8;
inputs[2][2] = 9;

答案 3 :(得分:0)

看看使用double[,]这是您需要的Arrays

答案 4 :(得分:0)

double [] []是一个锯齿状数组。 你可能意味着双[,]这是二维数组。

初始化二维数组:

double[,] matrix = new double[3,2] = {{1,2} {3,4}, {4,5}}

您已经有了从其他答案中初始化锯齿状数组的示例。

实际上锯齿状和真实多维数组之间的区别在于锯齿状数组是数组数组,所以它们可能不是矩形,即矩阵,因此是锯齿状的:

double[][] jagged = new double[2]
                   {
                       new double[4],
                       new double[2]
                    };

他们在记忆中的表现方式也不同。多维数组是对连续内存空间的单个引用。锯齿状数组是真正的数组数组。

详细了解here