作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如何将通用列表转换为列表?
我正在使用 ListCollectionView
我需要为它提供 IList
不是IList<T>
.
我看到很多例子来转换 IList
到 IList<T>
,但不是另一种方式。
我是否只是手动转换它 (new List().AddRange(IList<T>
)?
最佳答案
澄清其他答案:
IList<T>
不需要一个实现类型来实现 IList
. IEnumerable<T>
确实需要 IEnumerable
.我们可以通过 IEnumerable<T>
解决这个问题因为 T 的序列总是可以被视为对象序列。但是长颈鹿列表不能被视为对象列表;您可以将老虎添加到对象列表中。
然而,List<T>
不安全实现IList
吗? .如果您尝试将老虎添加到 List<Giraffe>
通过首先将其转换为 IList,您将得到一个异常。
所以回答这个问题:如果你手头只有一个 IList<T>
,您可以推测性地将其转换为 IList
使用“as”运算符,如果失败,则创建一个新的 ArrayList
或 List<object>
并将内容复制进去。如果你手头的是List<T>
那么你已经有了实现 IList
的东西直接。
关于c# - 如何将通用 List<T> 转换为 List?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5966000/
我是一名优秀的程序员,十分优秀!