將列表
本指南介紹如何將 Client
物件 (List<Client>
) 清單轉換為其對應的 IDic
介面 (List<IDic>
) 清單。
為什麼直接投射失敗
.NET 中允許從衍生型別(如 Client
)直接轉換為基底型別(IDic
)。然而,由於協方差的限制,相反的過程並不簡單。 這些限制可防止不安全操作,即基底類型清單可能意外包含派生類型元素,從而保持類型安全。
有效的轉換方法
兩種可靠的方法實現所需的轉換:
1。利用 IEnumerable<IDic>
(.NET 4 及更高版本)
.NET 4 及更高版本支援與 IEnumerable<T>
的協方差。 這可以實現從 List<Client>
到 IEnumerable<IDic>
的轉換,從而允許將 Client
物件作為 IDic
實例進行迭代。
2。建立新清單
要建立 List<IDic>
,您必須明確建立一個新清單並使用介面引用填充它。 .NET 4 為此提供了 ToList<T>()
方法。 .NET 3.5 使用 Cast<T>()
後面接著 ToList()
。
關於資料獨立性的重要說明
兩種技術都會產生單獨的列表,從而保持類型安全。 至關重要的是,對原始 List<Client>
的修改不會自動更新新的 List<IDic>
。 只有直接對 Client
物件本身進行的變更才會在兩個清單中可見。
以上是如何將清單轉換為.NET 中的清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!