如何转换通用IList IList?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何转换通用IList IList?相关的知识,希望对你有一定的参考价值。
我想用通用的ListCollectionView
创建一个IList<T>
,但构造函数得到一个非泛型的IList
。如何将我的列表从IList<T>
转换为IList
?
如果有另一种方法来创建一个ListCollectionView
与通用IList<T>
我想听听:)
令人讨厌的是,IList<T>
是那些没有实现其非通用对应物IList
的接口之一。
如果你能找到一种通过List<T>
而不是IList<T>
(或其他类型实现IList
以及IList<T>
,如ObservableCollection<T>
)的方法,那将是最简单的。这可能意味着更改您的应用程序,以便您传递List<T>
或其他东西而不是IList<T>
。
否则,您可能必须使用List<T>
中的元素创建一个新的IList<T>
,然后传递(即myList.ToList()
)。请注意,这意味着您已创建了列表的副本,因此对原始文件的更改不会反映在副本中。特别是,ListCollectionView
检查源集合是否实现了INotifyCollectionChanged
,并且如果是,则订阅集合更改事件:如果您创建列表副本,这显然不起作用。
List<T>
实施IList
(IList<T>
没有)。从你的List<T>
创建一个IList<T>
并将其传递给ListCollectionView
构造函数:
ListCollectionView lcv = new ListCollectionView(new List<YourType>(yourIList));
以上是关于如何转换通用IList IList?的主要内容,如果未能解决你的问题,请参考以下文章
无法将类型“IQueryable”隐式转换为 Generic.IList' 从 EF 上下文中检索记录列表作为列表
无法从“System.Collections.IList”转换为“System.Collections.Generic.IEnumerable<T>”