C# 中將 List 轉換為 List
面向對象編程中的繼承允許派生類繼承其基類的屬性和方法。然而,有時不清楚為什麼這種繼承不能應用於像 List 這樣的泛型集合。
考慮以下示例:
<code class="language-csharp">interface A { } class B : A { } class C : B { } class Test { static void Main(string[] args) { A a = new C(); // 正确 List<A> listOfA = new List<C>(); // 编译器错误 } }</code>
在此代碼中,編譯器錯誤發生是因為 List
為了解決這個問題,有兩種方法:
使用 ConvertAll
<code class="language-csharp">List<A> listOfA = new List<C>().ConvertAll(x => (A)x);</code>
ConvertAll 方法接受一個函數作為參數,並通過將該函數應用於源列表的每個元素來創建一個新列表。在本例中,函數 (x => (A)x) 將 List
使用 LINQ
<code class="language-csharp">List<A> listOfA = new List<C>().Cast<A>().ToList();</code>
LINQ 的 Cast
以上是如何將列表轉換為C#中的列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!