我试图找到最可重用但优雅的代码片段,以确定是否有IEnumerable.在理想情况下,这应该是一个我可以在任何时候都需要告诉IEnumerable是否为空的函数.
虽然我已经为.NET 3.5开发了一个迄今为止运行良好的答案,但我目前的想法是没有完美的答案,因为IEnumerable可以在技术上封装一个集合(或迭代器队列)来修改底层结果它会迭代,这会导致问题.但是,这也是实现IEnumerable.Count()的障碍,并没有阻止MS提供它.
所以我想我会把它放到SO上看看是否有人有更好的,以防万一其他人应该发现它有用.
编辑: 哇,我不敢相信我不知道IEnumerable.Any.我知道它存在,但从来没有费心去检查它做了什么.让这成为一个教训.阅读文档.仅仅因为方法名称并不意味着它能够满足您的需求,并不意味着它不能满足您的需求.
!enumerable.Any()
将尝试仅抓住第一个元素.
为了扩展它如何/为什么工作,任何确定IEnumerable
匹配给定函数的任何组件,如果没有给出,那么任何组件都将成功,这意味着如果元素存在于可枚举中,该函数将返回true.