回答
你可以嘗試這樣的事:
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. 編輯預定義的表格數組
- 7. itertools.izip()不是預定義的列表數
- 8. 定義具有預先指定的變量值的for循環
- 9. 從預定義列表
- 10. 使用預定義數組
- 11. 用於具有預定義大小的數組的initializer_list
- 12. 如何根據定義變量的值定義列表名稱
- 13. 具有預定義函數和變量的PEG.js擴展
- 14. 如何根據預定義的增量擴展列表?
- 15. Django預定義組
- 16. 如何創建自定義預定義的常量?
- 17. 使用預定義列表計數
- 18. 數據表到預定義DataGridView列
- 19. 如何檢查自定義列表是否具有特定行
- 20. 具有預定義深度的D3樹
- 21. 具有固定預定義值的HTML GET表單
- 22. 具有預定值的自定義drupal表單
- 23. 如何替換sed命令中具有預定義含義的特定字符?
- 24. 如何獲取在arrays.xml中定義的所有數組列表?
- 25. 具有不同內容的自定義可擴展列表
- 26. 對象具有自定義列表
- 27. 帶有預定義變量的jQuery Ajax傳遞數組
- 28. Angular2自定義表單組的數量
- 29. 如何獲取自定義列表框中組件的內容
- 30. 如何篩選基於預定義列表上的JSON列表
兩個答案都不錯,但爲什麼不要你需要去做吧 ?根據定義,列表通常會增長。如果你想要一個預定義的,爲什麼不使用數組? – Noctis
長篇故事......我試圖儘量減少記憶操作,因爲那是我的瓶頸。我嘗試在36個內核的機器(AWS超大實例)中充分利用CPU。 – Manngo
所以...你爲什麼不使用數組? :) – Noctis