2010-12-16 67 views

回答

7

不幸的是你不能使用的東西,它實現僅IEnumerable的LINQ擴展方法。但是,您可以使用.Cast<object>()將其變爲IEnumerable<object>,然後使用以下方法。下面假設collectionIEnumerable<T>類型的一些T

要訪問的第一個元素,並拋出一個異常,如果是沒有的:

collection.First() 

要訪問的第一個元素,並得到,如果該類型缺省值也沒有了:

collection.FirstOrDefault() 

類型的默認值是null引用類型(聲明爲class類型,例如string,Stream,Bitmap等)和值類型(聲明爲structenum的類型,例如int,boolDateTime等)的「零值」。

要僅找出是否有一個第一元件在所有:

collection.Any() 

所有這三個可以採取一個lambda表達式作爲條件,例如.First(x => x.Name == "x"),相當於.Where(x => x.Name == "x").First()

+0

我沒有找到這些方法。我的對象只實現IEnumable接口。 – user496949 2010-12-16 01:28:41

+0

順便說一句,我正在使用.NET Framework 3.5 – user496949 2010-12-16 01:29:00

+0

請問你能爲第一句話顯示任何參考嗎? ('不幸的是,你不能在僅實現IEnumerable的東西上使用LINQ擴展方法)。我從MSDN頁面複製了我的示例,它只是使用int數組...謝謝! – Lorenzo 2010-12-16 01:36:43

4

使用FirstOrDefault方法

using System.Linq; 

int[] numbers = { }; 
int first = numbers.FirstOrDefault(); 
相關問題