2013-05-30 30 views
3

是否有更快或更有效的方式爲字符串添加到列表中比下面的例子?:將字符串添加到列表 - 更快的方法?

List<String> apptList = new List<String>(); 

foreach (Appointment appointment in appointments){ 

    String subject = appointment.Subject; 
    //...(continues for another 10 lines) 

    //...And then manually adding each String to the List: 
    apptList.Add(subject); 
    //...(continues for another 10 lines) 

    //And then send off List apptList to another method 
} 
+0

你說的'//...(continues另外10行)'是什麼意思?有10個其他字段,你有'字符串fieldname = appointment.FieldName;'? – yoozer8

回答

6
var apptList = appointments.Select(a => a.Subject).ToList(); 
+0

謝謝基思。我對「約會選擇(a => a.Subject)」部分有點困惑。這是否意味着每個陳述現在都是多餘的,因爲這是引用「約會」而不是每個「約會」,還是我誤會了?另外,'a => a.Subject'參考是什麼,我以前沒有遇到過。乾杯。 – LKB

+0

它基本上表示約會中的每個項目,選擇主題,然後將其轉換爲列表。所以你最終得到一個所有約會主題的字符串列表。這是使用Linq。如果你沒有看過Linq,那太棒了!值得花時間調查。它可以做的不僅僅是這一點。 –

+0

哦,是的,這意味着foreach是多餘的創建主題列表 –

2

我不知道如果我得到你的代碼的權利,但由於你的約會類已經實現了IEnumerable,你應該可以調用ToList()將它轉換爲一次性列表。

http://msdn.microsoft.com/en-us/library/bb342261.aspx

+0

啊啊,是的,你說得對。 :) 謝謝! – LKB

+0

apptList = appointment.Subject.ToList(); - 獲取一條錯誤消息,並隱式地將類型char轉換爲String。我究竟做錯了什麼? :/ – LKB

+0

需要看代碼。如果您需要從char數組創建字符串,則需要string newString = new string(charArray)。如果你試圖將字符串轉換爲字符串,newString = new string(charList.ToArray()) – user2434792

1

如何:

List<string> apptList = appointments.Select(x => x.Subject).ToList(); 
相關問題