Joh*_*n K 11 .net c# ienumerable
如果不计算元素IEnumerables<T>
集合中的所有struct
元素,检测它是否为空的最佳方法是什么?
例如,在class
我通常用first或default测试的元素上:
myEnumerableReferenceTypeElements.FirstOrDefault() == null
Run Code Online (Sandbox Code Playgroud)
因为null通常不是正在迭代的集合中的有效值.
但是,对于所有值必须在预定义范围内的值类型,默认值(例如int default 0)也是集合中的可行项.
myValueTypeInt32Elements.FirstOrDefault() == 0 // can't tell if empty for sure
Run Code Online (Sandbox Code Playgroud)
Qui*_*son 14
尝试使用 .Any()
bool isEmpty = !myEnumerable.Any();
Run Code Online (Sandbox Code Playgroud)
来自MSDN
确定序列是否包含任何元素.