【发布时间】:2009-01-26 22:14:36
【问题描述】:
给定 c# 中的 List<T>,有没有办法扩展它(在其能力范围内)并将新元素设置为 null?我想要像memset 这样的东西。我不是在这里寻找糖,我想要快速的代码。我知道在 C 中,操作可以在每个条目 1-3 个 asm 操作中完成。
我找到的最佳解决方案是this:
list.AddRange(Enumerable.Repeat(null, count-list.Count));
但是那是 c# 3.0(
我当前的代码使用:
while(list.Count < lim) list.Add(null);
这就是时间成本的起点。
motivation for this 是我需要设置第 n 个元素,即使它在旧计数之后。
【问题讨论】:
-
如果这种情况经常发生,我建议使用 Dictionary
而不是 List