鉴于List<T>在c#中有一种方法可以扩展它(在其容量内)并将新元素设置为null?我想要的东西就像一个memset.我不是在寻找糖,我想要快速的代码.我知道在C语言中,操作可以在每个条目1-3个asm操作中完成.
我已经找到了最好的解决方案是这样:
list.AddRange(Enumerable.Repeat(null, count-list.Count));
Run Code Online (Sandbox Code Playgroud)
然而,这是c#3.0(首选<3.0),可能正在生成和评估枚举器.
我目前的代码使用:
while(list.Count < lim) list.Add(null);
Run Code Online (Sandbox Code Playgroud)
所以这是时间成本的起点.
这样做的动机是我需要设置第n个元素,即使它是在旧的Count之后.