C# 如何调用内部列表构造函数以定义容量

C# How to call the inner list constructor inorder to define capacity

提问人:Kaur Kukk 提问时间:12/15/2021 最后编辑:EnigmativityKaur Kukk 更新时间:12/15/2021 访问量:96

问:

我想访问内部列表构造函数以定义容量,我该如何实现? 这就是我所拥有的:这会将外部列表初始化为 20 个元素。

public List<List<(int x, int y)>> coordinatesForHorizontalShips = new List<List<(int x, int y)>>(20);

来自微软:

https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.-ctor?view=net-6.0列表(Int32) 初始化 List 类的新实例,该实例为空且具有指定的初始容量。

C#

Copy
public List (int capacity);
Parameters
capacity
Int32
The number of elements that the new list can initially store.
C# 构造函数 Nested-Lists 列表初始化

评论

0赞 Lasse V. Karlsen 12/15/2021
将 20 个列表添加到外部列表,每个内部列表都必须以 20 的容量构建?您可以执行以下操作:= Enumerable.Range(1, 20).Select(_ => new List<(int x, int y)>(20)).ToList()
1赞 Jeroen Mostert 12/15/2021
请注意,如果容量是固定的(例如,您不打算向内部和外部列表添加任何内容,而是正好添加 20 个项目),则多维数组可能是更明显的选择 ()。(int x, int y)[,] coords = new (int x, int y)[20, 20]

答:

1赞 Enigmativity 12/15/2021 #1

以下是初始化每个具有 1_000 容量的外部列表的方法:20

public List<List<(int x, int y)>> coordinatesForHorizontalShips =
    Enumerable.Range(0, 20).Select(x => new List<(int x, int y)>(1000)).ToList();