回答
你可以尝试这样的事:
var array = Enumerable.Range(0,100).Select(n=>new List<object>(500)).ToArray();
这里我们使用List<T>
构造一个参数,该列表的能力。请看看here。
可以工作,但是'ToArray'不知道它总是有100个元素,所以你会创建一堆基于默认*不必要的间歇性数组,一旦达到限制*启发式就启动小和两倍大小。 – MarcinJuraszek
@MarcinJuraszek好赶上!我可能认为它有点快...感谢您的评论。 – Christos
这解决了我的情况。非常感谢! – Manngo
旧风格的循环将这样的伎俩:
List<object>[] myList= new List<object>[100];
for(int i = 0; i < 100; i++)
{
myList[i] = new List<object>(500);
}
谢谢!对于像我这样的人来说这是一个更容易理解的解决方案我实际上在for中用.capacity = 500尝试了同样的事情。它没有工作... – Manngo
你不是构建实际的名单,只是用于存储它们的引用分配空间。您只能在构建列表对象时设置容量。
你可以换另一个类的阵列和懒洋洋地构建列为他们需要:
class ListArray {
private readonly List<object>[] _lists;
private readonly int _capacity;
public ListArray(int size, int capacity) {
_lists = new List<object>[size];
_capacity = capacity;
}
public List<object> this[int ix] {
get {
if(_lists[ix] == null)
_lists[ix] = new List<object>(capacity);
return _lists[ix]
}
}
}
然后使用它像
var myList = new ListArray(100, 500);
myList[0].Add(someObject);
- 1. 列表(矢量)定义与数组
- 2. 定义多维数组列表的容量
- 3. 如何定义列表/数组在Python
- 4. 如何用一些预定义值初始化数组列表?
- 5. 使用预定义数组
- 6. 用于具有预定义大小的数组的initializer_list
- 7. 如何根据定义变量的值定义列表名称
- 8. 具有预定义函数和变量的PEG.js扩展
- 9. 使用预定义列表计数
- 10. 数据表到预定义DataGridView列
- 11. 具有预定值的自定义drupal表单
- 12. 具有固定预定义值的HTML GET表单
- 13. 如何替换sed命令中具有预定义含义的特定字符?
- 14. 如何获取在arrays.xml中定义的所有数组列表?
- 15. Angular2自定义表单组的数量
- 16. 如何筛选基于预定义列表上的JSON列表
- 17. 在WCF编组List <>时的预定义容量
- 18. 如何定义具有小数索引号的数组
- 19. 自定义列表到数组阵列
- 20. 自定义列表定义
- 21. VB.NET数组的自定义类列表
- 22. 用递归创建具有预定义定义的基本数学运算
- 23. 如何使用类定义数组并为其添加值(预定义参数)?
- 24. 的预定义C中的数组
- 25. 如何查找具有已定义列的表?
- 26. LINQ虚拟(预定义)列分组
- 27. 如何确定数组中定义的元素的数量?
- 28. 覆盖预定义的数组
- 29. 如何定义具有多个值的数组?
- 30. 问题以编程的行具有预先定义的列
两个答案都不错,但为什么不要你需要去做吧 ?根据定义,列表通常会增长。如果你想要一个预定义的,为什么不使用数组? – Noctis
长篇故事......我试图尽量减少记忆操作,因为那是我的瓶颈。我尝试在36个内核的机器(AWS超大实例)中充分利用CPU。 – Manngo
所以...你为什么不使用数组? :) – Noctis