如何将通用IList <T>转换为IList?

Nat*_*lie 5 c# wpf

我想ListCollectionView用泛型创建一个,IList<T>但构造函数获取一个非泛型IList。如何将列表从转换IList<T>IList

如果还有另一种ListCollectionView使用泛型创建的方法,IList<T>我想听听:)

can*_*on7 6

令人讨厌的IList<T>是,这些接口之一没有实现其非通用对应项IList

如果你能找到一种方法来传递List<T>,而不是IList<T>(实现或一些其他类型IList,以及IList<T>,如ObservableCollection<T>,这将是最简单的)。这可能意味着更改您的应用程序,以便您List<T>在周围传递a 或其他内容而不是IList<T>

否则,您可能必须List<T>使用中的元素创建一个新的IList<T>并将其传递(即myList.ToList())。请注意,这意味着您已经创建了列表的副本,因此对原始列表所做的更改不会反映在副本中。尤其要ListCollectionView检查源集合是否实现INotifyCollectionChanged,如果是,则订阅集合更改的事件:如果创建列表的副本,这显然将不起作用。