数组、数组列表或列表列表

本文关键字:列表 数组 | 更新日期: 2023-09-27 18:15:39

我本来打算使用一个标准数组,我需要它是x行数和2列

double[,] members = new double[x, 2];

循环遍历我返回的所有结果,然后将它们添加到数组中,但由于结果的数量可能会改变,我不想预先定义数组的大小。。。

members[0, 0] = cost;
members[x, 1] = tax;
x++;

我想调整数组的大小,但只使用arraylist或列表列表会更容易吗?

数组、数组列表或列表列表

我会有一个某种类型的列表,其中该类型有成本和税收。

如果空间是一个溢价,它可以是一个有两个双精度的结构(顺便说一句,decimal会更合适吗?对于金钱来说,它几乎总是一个更好的选择(,但如果是这样:使其不可变。

例如:

public struct YourType {
    private readonly decimal cost, tax;
    public decimal Cost { get { return cost; } }
    public decimal Tax { get { return tax; } }
    public YourType(decimal cost, decimal tax) {
        this.cost = cost;
        this.tax = tax;
    }
}

带有:

List<YourType> list = new List<YourType>();

也许第二维度中的项数是固定的,或者至少是可预测的,所以如果您使用的是Microsoft.NET Framework 4.0,您可以使用元组列表:

List<Tuple<double, double>> list = new List<Tuple<int, int>>();
// In your loop...
list.Add(Tuple.Create(cost, tax));
// ... later when retrieving some tuple...
int item0cost = list[0].Item1;
int item0tax = list[0].Item2;

您总是可以实现某种具有CostTax属性的值对象类,但使用元组可以像我在代码示例中展示的那样简单地实现。

您应该使用List<List<int>>

使用List<T>

来自msdn:

ArrayList已被List<T>取代,后者速度更快,具有更多功能。

T可以是List<double>double[2]struct或2-元组。。。但正如Marc所说,如果嵌套的List注定总是有两个项,那么使用List<List<double>>就太过分了。