何时IEnumerable不能转换为IList?

时间:2015-08-19 17:11:37

标签: c# ienumerable

我在我正在处理的项目中找到了这段代码:

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

我知道as returns null if it can't successfully convertToList()然后会完成工作,但是会发生什么情况呢?

1 个答案:

答案 0 :(得分:5)

除其他外,请考虑这个简单的案例:

./sonic-annotator file.wav -d vamp:qm-vamp-plugins:qm-transcription:transcription -w midi

./sonic-annotator file.wav -d vamp:silvet:silvet:notes -w midi

./sonic-annotator file.wav -d vamp:ua-vamp-plugins:mf0ua:mf0ua -w midi

这会返回一个真正的public IEnumerable<int> GetListOfNumbers() { for (int i = 0; i < 100; i++) yield return i; } ,它也不会实现IEnumerableMSDN)。显然,添加/删除此&#34;集合&#34;没有任何意义,也不能通过索引访问元素。