我在我正在处理的项目中找到了这段代码:
IEnumerable<int> foo = iEnumerableIntVariable as IList<int> ?? iEnumerableIntVariable.ToList();
我知道as
returns null if it can't successfully convert,ToList()
然后会完成工作,但是会发生什么情况呢?
答案 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;
}
,它也不会实现IEnumerable
(MSDN)。显然,添加/删除此&#34;集合&#34;没有任何意义,也不能通过索引访问元素。