共用方式為


用於操作陣列和列表的泛型委派

本主題提供有關泛型委託的概觀,包括轉換、搜尋述詞,以及在陣列或集合的元素上要採取的操作。

用於操作陣列和列表的泛型委派

Action<T> 型委派代表方法,這個方法會對指定型別的元素執行某些動作。 您可以建立方法,在專案上執行所需的動作、建立委派的 Action<T> 實例來表示該方法,然後將陣列和委派傳遞至 Array.ForEach 靜態泛型方法。 將為陣列的每個元素呼叫該方法。

一般類別 List<T> 也提供一個使用 ForEach 委派的 Action<T> 方法。 這個方法不是泛型。

備註

這提出了一個有趣的觀點,關於泛型類型和方法。 方法 Array.ForEach 必須是靜態的(Shared 在 Visual Basic 中)並且要是泛型的,因為 Array 不是泛型類型。唯一可以指定 Array.ForEach 要操作的類型的原因是該方法有自己的類型參數清單。 相反地,非generic List<T>.ForEach 方法屬於泛型類別 List<T>,因此它只會使用其 類別的 type 參數。 類別是強型別,因此方法可以是實例方法。

泛型 Predicate<T> 委派表示一種方法,決定特定元素是否符合您定義的標準。 您可以搭配 Array 的下列靜態泛型方法來搜尋某個元素或一組元素:ExistsFindFindAllFindIndexFindLastFindLastIndexTrueForAll

Predicate<T> 也適用於泛型類別的 List<T> 對應非泛型實例方法。

Comparison<T> 型委派可讓您為沒有原生排序順序的陣列或列表專案提供排序順序,或覆寫原生排序順序。 建立執行比較的方法、建立委派的 Comparison<T> 實例來表示方法,然後將數位和委派傳遞至 Array.Sort<T>(T[], Comparison<T>) 靜態泛型方法。 泛List<T>型類別會提供對應的實體方法多載 。 List<T>.Sort(Comparison<T>)

Converter<TInput,TOutput> 型委派可讓您定義兩種型別之間的轉換,以及將一個型別的陣列轉換成另一個型別的陣列,或將一個型別的清單轉換成另一個型別的清單。 建立方法,將現有清單的項目轉換成新類型、建立委派實例來表示 方法,並使用 Array.ConvertAll 泛型靜態方法從原始數位產生新類型的數位,或 List<T>.ConvertAll<TOutput>(Converter<T,TOutput>) 泛型實例方法從原始清單產生新型別的清單。

鏈結委派

許多使用這些委派的方法都會傳回數位或清單,而此陣列或清單可以傳遞至另一個方法。 例如,如果您想要選取陣列中的某些元素,將這些元素轉換為新類型,並將它們儲存在新陣列中,您可以將FindAll泛型方法所返回的陣列傳遞至ConvertAll泛型方法。 如果新的項目類型缺少自然排序順序,您可以將泛型方法傳回的ConvertAllSort<T>(T[], Comparison<T>)陣列傳遞給泛型方法。

另請參閱