声明数组列表时指定大小

Specifying a size when declaring a List of Arrays

如问题所述,是否有其他方法可以做到这一点?:

decimal[] decimal_array = new decimal[12];
List<decimal> decimal_list = new List<decimal>(3);

// want to combine the two
List<decimal[]> decimal_list_array = new List<decimal[12]>(3); // doesn't compile

我知道这行不通,因为 "decimal[12]" 不是类型,但是在我声明它时设置结构的大小而不是必须编写

会更好更简洁=11=] 很多次。

我希望能够主要通过索引对列表中对象的每个 实例 进行操作,但除此之外我不关心实际对象的排序 列表中。

编辑:结构的初始大小将在声明时已知,但这只是 List<decimal[]>

的最小实例数

您可以使用LINQ

var list = Enumerable.Range(0, 3).Select(x => new decimal[12]).ToList();

如果您想限制内部数组和外部列表的大小,那么您可能需要的是 multi-dimensional array

decimal[,] decimalListArray = new decimal[3,12];

正如您所说,new List<decimal[12]>(3) 将不起作用,因为 decimal[12] 不是一种类型,但即使它起作用,您实际上也没有将列表限制为具有 3 个元素。 3 将是 初始 容量,但如果添加第四个项目,容量将会增加。根据定义,列表是动态的。

您可以执行以下操作:

decimal[] dec_array = new decimal[12] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
List<decimal> dec_list = new List<decimal>(3) { 12, 13, 14 };

List<decimal> listComb = dec_array.ToList().Union(dec_list).ToList();
//you can change order by doing so: dec_list.Union(dec_array.ToList()).ToList();

别忘了'using System.Linq;'