2016-05-27 23 views
1

任何一種方法可以一次性生成給定數量的元素的C#列表?不只是逐個添加,還是從其他IEnumerable中複製。然後我可以使用索引器來分配值。我找到了一個構造函數List(int capacity)。它有幫助嗎?任何方式來使一個C#列表與一些元素?

+0

爲什麼不使用數組呢? – 2kay

+0

我需要一些列表功能在未來。 – user1899020

+0

你是否有預定的值,你想要創建列表? –

回答

3

好了,你可以把它像這樣

var List<MyType> result = Enumerable 
    .Range(0, count) 
    .Select(index => create your type instance here) 
    .ToList(); 

,你可以,也許,不想額外的步驟(因爲你可以通過Select填充列表)。如果你正在尋找性能然後

// new List<MyType>(count) reserves memory for "count" items 
// so "Add" will not reallocate the list 
var List<MyType> result = new List<MyType>(count); 

for (int i = 0; i < count; ++i) 
    result.Add(create your type instance here); 
+2

甚至'Enumerable.Repeat(默認(T),計數).ToList()' – 2kay

+0

我想知道性能。它是先製作一個序列然後將其複製到列表中?或者直接在名單上工作? – user1899020

+0

@ 2kay:因爲「...然後我可以使用索引器來分配值......」我更喜歡'Range(0,count)'並通過'Select'填充列表 –

相關問題