2017-03-19 59 views
-1

System.Collections.IEnumerable(它只包含T型元素)獲得通用IEnumerable<T>的最簡單方法是什麼?從System.Collections.IEnumerable獲取泛型IEnumerable <T>的最簡單方法是什麼?

東西對我說應該是簡單的(避免LINQ)標準包裝,但我找不到它。

+0

我不明白你的問題,你可以更清楚了嗎? –

+1

使用OfType或Cast擴展。 – Evk

+0

您很可能正在尋找'Cast'方法,但它被認爲是LINQ(在Enumerable類中定義)。如果您確定它只包含'T'類型的元素,則可以使用簡單的C#類型轉換。 '(IEnumerable )enumerable' –

回答

1

最簡單和最短的是與LINQ。您可以枚舉它沒有LINQ:

foreach (T item in IEnumerableCollection) 

,這是幾乎什麼.Cast<T>()做:

static IEnumerable<TResult> CastIterator<TResult>(IEnumerable source) { 
    foreach (object obj in source) yield return (TResult)obj; 
} 
+0

謝謝。你是對的Cast 即使它是從System.Linq命名空間不包含表達式我真的想要避免。 –

相關問題