2012-12-08 116 views
49

當前我使用foreach循環返回object屬性的列表。從對象列表中獲取屬性列表

class X 
{ 
    List<X> Z = GetXlist(); 
    List<String> r = new List<String>(); 

    foreach (var z in Z) 
    { 
     r.Add(z.A); 
    } 

    return r; 
} 

有沒有辦法,我可以縮短,這樣我就不必寫foreach循環的方法嗎?

+0

你沒有寫for循環。有一個區別,你應該知道http://programmers.stackexchange.com/questions/178218/for-vs-foreach-vs-linq –

回答

83

LINQ就是答案。您可以使用它從對象集合「投影」到另一個集合 - 在本例中爲對象屬性值的集合。

List<string> properties = objectList.Select(o => o.StringProperty).ToList(); 
+0

簡單修復!謝謝! –

5

你可以使用LINQ:

List<X> Z = GetXlist(); 

List<String> r = Z.Select(z => z.A).ToList(); 

return r; 

或者只是,

return GetXlist().Select(z => z.A).ToList(); 

瞭解更多有關LINQ。這是漂亮有用。