何时IEnumerable不能转换为IList
本文关键字:IList 转换 不能 IEnumerable 何时 | 更新日期: 2023-09-27 18:08:58
我在我正在做的一个项目中发现了这段代码:
IEnumerable<int> foo = iEnumerableIntVariable as IList<int> ?? iEnumerableIntVariable.ToList();
我知道as
返回null,如果它不能成功转换,然后ToList()
会踢进去完成工作,但是在什么情况下会发生这种情况?
其中,考虑这个简单的例子:
public IEnumerable<int> GetListOfNumbers()
{
for (int i = 0; i < 100; i++)
yield return i;
}
这返回一个真实的IEnumerable
,不会实现IList
以及(MSDN)。显然,从这个"集合"中添加/删除没有任何意义,元素也不能通过索引访问。