簡體   English   中英

如何轉換通用IList <T> IList?

[英]How do I convert a Generic IList<T> to IList?

我想創建一個帶有通用IList<T>ListCollectionView ,但構造函數獲取一個非泛型的IList 如何將列表從IList<T>轉換為IList

如果有另一種方法來創建一個具有通用IList<T>ListCollectionView我想聽聽:)

令人討厭的是, IList<T>是那些沒有實現其非通用對應IList接口之一。

如果你能找到一種方法來傳遞List<T>而不是IList<T> (或其他一些實現IList以及IList<T> ,比如ObservableCollection<T> ),那將是最簡單的。 這可能意味着更改您的應用程序,以便傳遞List<T>或其他內容而不是IList<T>

否則,您可能必須使用IList<T>的元素創建一個新的List<T> IList<T> ,並傳遞它(即myList.ToList() )。 請注意,這意味着您已創建了列表的副本,因此對原始文件的更改不會反映在副本中。 特別是, ListCollectionView檢查源集合是否實現INotifyCollectionChanged ,如果是,則訂閱集合已更改事件:如果您創建列表副本,這顯然不起作用。

List<T>實現IListIList<T>不實現)。 IList<T>創建List<T>並將其傳遞給ListCollectionView構造函數:

ListCollectionView lcv = new ListCollectionView(new List<YourType>(yourIList));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM