Enumerable.OfType 方法 (IEnumerable)
篩選的元素 IEnumerable 根據指定的型別。
程式集: System.Core(位於 System.Core.dll)
引數
- source
- Type: System.Collections.IEnumerable
IEnumerable 要篩選其元素。
型別引數
- TResult
-
篩選序列元素所根據的型別。
此方法實現通過使用延遲的執行。 最接近的返回值是指儲存執行的操作所需的所有資訊的物件。 此方法所表示的查詢不執行之前呼叫列舉的物件及其GetEnumerator 方法直接或通過使用 foreach 中 Visual C# 或 For Each 中 Visual Basic。
OfType<TResult>(IEnumerable) 方法只返回這些元素在 source 均可轉換為型別 TResult。 若要改為收到的異常,如果元素不能轉換為鍵入TResult, ,使用 Cast<TResult>(IEnumerable)。
此方法是可以應用於具有非引數化型別,如集合的幾個標準查詢運算子方法之一 ArrayList。 這是因為 OfType<TResult> 擴充套件型別 IEnumerable。OfType<TResult> 不能僅應用於所基於的集合引數化 IEnumerable<T> 型別,但基於非引數化的集合 IEnumerable 還需要鍵入。
通過應用 OfType<TResult> 到一個集合,其中實現 IEnumerable, ,您能夠通過使用標準查詢運算子查詢的集合。 例如,如果指定的型別實參Object 到 OfType<TResult> 將返回型別的物件 IEnumerable<Object> 在 C# 或 IEnumerable(Of Object) 中 Visual Basic, ,將要應用的標準查詢運算子。
下面的程式碼示例演示如何使用 OfType<TResult> 來篩選的元素 IEnumerable。
System.Collections.ArrayList fruits = new System.Collections.ArrayList(4); fruits.Add("Mango"); fruits.Add("Orange"); fruits.Add("Apple"); fruits.Add(3.0); fruits.Add("Banana"); // Apply OfType() to the ArrayList. IEnumerable<string> query1 = fruits.OfType<string>(); Console.WriteLine("Elements of type 'string' are:"); foreach (string fruit in query1) { Console.WriteLine(fruit); } // The following query shows that the standard query operators such as // Where() can be applied to the ArrayList type after calling OfType(). IEnumerable<string> query2 = fruits.OfType<string>().Where(fruit => fruit.ToLower().Contains("n")); Console.WriteLine("\nThe following strings contain 'n':"); foreach (string fruit in query2) { Console.WriteLine(fruit); } // This code produces the following output: // // Elements of type 'string' are: // Mango // Orange // Apple // Banana // // The following strings contain 'n': // Mango // Orange // Banana
相關文章
- C#內建介面:IEnumerableC#
- IEnumerable 介面 實現foreach 遍歷 例項
- WebApi XML,Json格式自定義,IEnumerable<T>,ArrayOfWebAPIXMLJSON
- 細說 C# 中的 IEnumerable和IEnumerator介面C#
- [原譯]實現IEnumerable介面&理解yield關鍵字
- C#你可能不知道的陷阱, IEnumerable介面C#
- 細說 C# 中的 IEnumerable,你真的懂 foreach 嗎?C#
- Entity Framework中使用IEnumerable<T>、IQueryable<T>及IList<T>的區別Framework
- # C# 重新認識一下 IEnumerable<T>,IAsyncEnumerable<T> 以及搭配非同步可能遇到的問題C#非同步
- Java中parse方法,ValueOf方法,toString方法Java
- Python例項方法、類方法、靜態方法Python
- js includes方法 和 filter方法JSFilter
- Java的方法靜態方法Java
- show()方法和hide()方法IDE
- 方法
- 徹底理解了call()方法,apply()方法和bind()方法APP
- Python Class 的例項方法/類方法/靜態方法Python
- slideUp()方法和slideDown()方法IDE
- Java方法03:方法的過載Java
- 物件導向2--靜態方法、類方法、屬性方法物件
- javaSE-day04--ArrayList基本用方法、類內定義方法和方法過載、靜態方法static(類的方法)、工具方法(static)的定義和使用Java
- 來看看兩種好玩的方法,擴充套件方法和分部方法套件
- initialize方法與load方法比較
- Java System類,currentTimeMillis方法,arraycopy方法。Java
- jQuery方法原始碼定位簡單方法jQuery原始碼
- 細說equals()方法和hashCode()方法
- prop()方法和attr()方法的區別
- 詳解equals()方法和hashCode()方法
- exitFullscreen() 方法
- Promise then() 方法Promise
- removeProperty() 方法REM
- deleteRule() 方法delete
- getPropertyPriority() 方法
- getPropertyValue() 方法
- javascriptreplaceAll方法JavaScript
- main方法AI
- 字串方法字串
- 方法引用