如果不计算IEnumerables<T>
个struct
元素集合中的所有元素,检测它是否为空的最佳方法是什么?
例如,在class
元素上,我通常会使用first或default进行测试:
myEnumerableReferenceTypeElements.FirstOrDefault() == null
因为null通常不是正在迭代的集合中的有效值。
但是,对于所有值必须在预定义范围内的值类型,默认值(例如int default 0)也是集合中可行的项目。
myValueTypeInt32Elements.FirstOrDefault() == 0 // can't tell if empty for sure
答案 0 :(得分:13)
答案 1 :(得分:4)
.Any()
extension method是针对此案例设计的。
答案 2 :(得分:1)
bool isEmpty = !myEnumerableReferenceTypeElements.Any();