0

項目の Item[] _items 配列があり、項目の一部が null である可能性があります。配列に null 以外の項目が少なくとも 1 つ含まれているかどうかを確認したいと思います。

私の現在の実装は少し複雑に思えます:

    internal bool IsEmtpy { get { return (!(this.NotEmpty)); } }
    private bool IsNotEmpty { get { return ( this.Items.Any(t => t != null));} }

だから私の質問は:参照オブジェクトの型付き配列にnull以外のオブジェクトが少なくとも1つ含まれているかどうかを確認する簡単な方法はありますか?

4

1 に答える 1

2

実装に複雑さはありません。基本的に、配列に null 以外の値があるかどうかを確認する唯一の方法は、null 以外の値または配列の最後に到達するまで、すべての値を調べることです。

ただし、次のコードの方が理解しやすいです。

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();

于 2012-07-02T08:47:22.113 に答える