何时IEnumerable不能转换为IList

本文关键字:IList 转换 不能 IEnumerable 何时 | 更新日期: 2023-09-27 18:08:58

我在我正在做的一个项目中发现了这段代码:

IEnumerable<int> foo = iEnumerableIntVariable as IList<int> ?? iEnumerableIntVariable.ToList();

我知道as返回null,如果它不能成功转换,然后ToList()会踢进去完成工作,但是在什么情况下会发生这种情况?

何时IEnumerable不能转换为IList

其中,考虑这个简单的例子:

public IEnumerable<int> GetListOfNumbers()
{
    for (int i = 0; i < 100; i++)
        yield return i;
}

这返回一个真实的IEnumerable,不会实现IList以及(MSDN)。显然,从这个"集合"中添加/删除没有任何意义,元素也不能通过索引访问。

相关文章: