您的实现没有复杂性。基本上,检查数组中是否存在非空值的唯一方法是查看所有值,直到到达非空值或数组末尾。
不过下面的代码更容易理解:
internal bool IsEmtpy { get { return this.Items.All(t => t == null); } }
private bool IsNotEmpty { get { return this.Items.Any(t => t != null); } }
IEnumerable
扩展如下可能更好:
public static class Extensions {
public static bool ContainsOnlyEmpty<TSource>(this IEnumerable<TSource> source) {
return source.All(t => t == null);
}
public static bool ContainsNonEmpty<TSource>(this IEnumerable<TSource> source) {
return source.Any(t => t != null);
}
}
并像这样使用它:bool nonEmpty = this.Items.ContainsNonEmpty();