2009-08-24 66 views

回答

25
var first = yourCollection.OfType<YourType>().First(); 

注意,如果沒有YourType類型元素的First方法會拋出異常。如果你不想那麼做,那麼你可以用FirstOrDefaultTake(1)來代替,這取決於你想要的行爲。

12

使用OfType擴展方法:

public static T FindFirstOfType<T>(IEnumerable list){ 
return list.OfType<T>().FirstOrDefault(); 
} 
+2

這個IEnumerable列表使其成爲一個擴展? – 2009-08-24 18:15:37

5

你可以只使用FirstOrDefault並傳入委託使用的比較。

object[] list = new object[] { 
    4, 
    "something", 
    3, 
    false, 
    "other" 
}; 

string first = list.FirstOrDefault(o => o is string); //something 
+0

你的代碼不能編譯。因爲'FirstOrDefault'正在返回一個'object',所以你必須將它轉換爲'string',以便將它賦值給聲明爲'string'的第一個變量。 – 2016-01-07 15:25:20

相關問題