0

Any()列挙型に少なくとも 1 つの要素があるかどうかを判断するために Linq の拡張機能を使用すると、1 つの要素のみを消費することを知っています。しかし、それは実際にどのように機能するのでしょうか? 最初に列挙可能なすべてのアイテムをキャストする必要がありますか、それとも最初から始めてそこで停止するように、一度に 1 つずつキャストするだけですか?

4

3 に答える 3

4

Any()で動作するIEnumerable<T>ため、キャストは必要ありません。その実装は非常に単純で、単純に列挙可能なものを繰り返し処理し、指定された条件に一致する要素を見つけることができるかどうかを確認します。

于 2013-02-20T16:49:45.940 に答える
2

簡単な実装は次のようになります。

public bool Any<T>(IEnumerable<T> list)
{
    using (var enumerator = list.GetEnumerator())
    {
        return enumerator.MoveNext();
    }
}

したがって、キャストは必要ありません

于 2013-02-20T16:53:57.430 に答える