gpt4 book ai didi

c# - 如何将 List 初始化为给定大小(相对于容量)?

转载 作者:IT王子 更新时间:2023-10-29 03:36:18 28 4
gpt4 key购买 nike

.NET 提供了一个通用的列表容器,其性能几乎相同(请参阅数组与列表的性能问题)。但是它们在初始化方面有很大的不同。

数组很容易用默认值初始化,并且根据定义它们已经具有一定的大小:

string[] Ar = new string[10];

这允许一个人安全地分配随机项目,比如说:

Ar[5]="hello";

有了列表,事情就更棘手了。我可以看到两种执行相同初始化的方法,这两种方法都不是您所说的优雅:

List<string> L = new List<string>(10);
for (int i=0;i<10;i++) L.Add(null);

string[] Ar = new string[10];
List<string> L = new List<string>(Ar);

什么是更清洁的方法?

编辑:到目前为止的答案是指容量,这与预填充列表不同。例如,在刚刚创建的容量为 10 的列表中,不能执行 L[2]="somevalue"

编辑 2:人们想知道为什么我要以这种方式使用列表,因为这不是它们的预期使用方式。我可以看到两个原因:

  1. 可以非常有说服力地论证列表是“下一代”数组,增加了灵 active 而几乎没有损失。因此,默认情况下应该使用它们。我指出它们可能不那么容易初始化。

  2. 我目前正在编写的是一个提供默认功能的基类,作为更大框架的一部分。在我提供的默认功能中,列表的大小是高级已知的,因此我可以使用数组。但是,我想为任何基类提供动态扩展它的机会,因此我选择了一个列表。

最佳答案

List<string> L = new List<string> ( new string[10] );

关于c# - 如何将 List<T> 初始化为给定大小(相对于容量)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/466946/

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