gpt4 book ai didi

c# - 我如何在 C# 中初始化 Data = new double[rowCount][columnCount]

转载 作者:行者123 更新时间:2023-11-30 23:12:30 26 4
gpt4 key购买 nike

在 Java 中,我可以说:

private double[][] data;

并初始化它:

Data = new double[rowCount][columnCount]

但是,在 C# 中,我会说

private double[][] Data { get; set; }

我如何在 C# 中以相同的方式初始化它?

编辑

到目前为止,这是 C# 中的类:

namespace Carnotaurus.UtilityPack.Models.StatModels.Matrices
{
public class Matrix
{

public int RowCount { get; }

public int ColumnCount { get; }

public double[][] Data { get; set; }

public Matrix(double[][] dat)
{
Data = dat;
RowCount = dat.Length;
ColumnCount = dat[0].Length;
}

public Matrix(int rowCount, int columnCount)
{
RowCount = rowCount;
ColumnCount = columnCount;
//Data = new double[rowCount][columnCount];
}
}

最佳答案

(无视我之前的回答,脑子放屁了。)

在 C# 中,我们有两种不同的多维数组。有方形数组 (double[,]) 和锯齿状数组 (double[][])。

方形数组是真正的多维数组。第一维有固定长度的子数组,第二维中的每个数组也有固定长度,依此类推。它们通常用于定义诸如网格或笛卡尔图之类的东西。您可以像这样定义和初始化它们:

public double[,] Data { get; set; }

public Matrix(int rowCount, int columnCount)
{
Data = new double[rowCount, columnCount];
}

锯齿状数组被视为“数组的数组”。每个子数组基本上都是一个不同的数组,并且可能与它的所有兄弟数组具有相同的长度,也可能不具有相同的长度。因此,每个子数组都必须单独初始化。它们的声明和初始化如下:

public double[][] Data { get; set; }

public Matrix(int rowCount, int columnCount)
{
Data = new double[rowCount][];

for (int i = 0; i < rowCount; i++)
{
Data[i] = new double[columnCount];
}
}

对于任一数组类型可以到达的维度,实际上并没有任何固定限制。例如,您可以有一个 10 维方形数组:

double[,,,,,,,,,] Data;

... 或锯齿状数组:

double[][][][][][][][][][] Data;

...尽管我建议您有充分的理由制作具有那么多维度的数组。 :P

关于c# - 我如何在 C# 中初始化 Data = new double[rowCount][columnCount],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44081806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com