2016-01-19 28 views
1

我在一個項目上工作,我發現這個人使用了一段代碼。如果是我,我會使用一個簡單的數組,因爲這是我所知道的。查看下面的代碼,選擇列表對數組有什麼好處?爲什麼選擇數組列表?

List<string> errors = new List<string>(); 

if (ddDirector.SelectedItem.Value == "") 
    errors.Add("You must select an item in the Director list."); 

if (errors.Count > 0) 
{ 
    ErrorList.InnerHtml = "Please correct the following issues below:<br/><ul>"; 
    foreach (string e in errors) 
    { 
     ErrorList.InnerHtml += String.Format("<li>{0}</li>", e); 
    } 
    ErrorList.InnerHtml += "</ul>"; 
} 
return (errors.Count()==0); 
+3

列表中有一些方法可以方便地在給定的位置或從開始或結束以及其他方法中添加和減去元素。 https://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx – ProgrammingDude

+1

老實說,根據我的經驗,人們使用'List '因爲它們很懶,很容易使用。儘管從性能的角度來看,並不總是最好的選擇。 – CodingGorilla

+1

如果你不確定項目的數量,然後去列表。 – Arshad

回答

5

對於數組,您需要在初始化之前知道集合的大小。

這對List不是必需的,因此它可以根據需要進行擴展。

順便說一句,List有一個Count屬性,您可以使用,而不是Count()擴展方法。

+1

數組有長度,你不必使用Count() – galenus

+1

@galenus我知道,我指的是代碼片段。說他不必在那裏使用擴展方法。我沒有把它作爲在數組中使用List的理由。 –

+1

其實你可以在數組和列表上使用'Enumerable.Count'。沒有性能差異,因爲該方法首先檢查該集合是否可以被轉移到列表和數組的情況下「ICollection 」。然後使用該屬性。 –

2

一個數組有一個固定的大小。如果你沒有完全填充它,你還必須有一個變量來存儲陣列中使用的插槽的數量。

一個列表通常會包裝一個數組,但需要分配一個更大的數組(如果需要)並跟蹤使用的大小。