如何知道IEnumerable <ValueType>是否为空,不计算全部?

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

确定序列是否包含任何元素.