ホームページ >バックエンド開発 >C++ >反復せずに IEnumerable 内の項目をカウントするにはどうすればよいですか?

反復せずに IEnumerable 内の項目をカウントするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-27 10:11:16770ブラウズ

How Can I Count Items in an IEnumerable Without Iteration?

IEnumerable 内の項目のカウント反復なし

シーケンスを操作する場合、多くの場合、シーケンスを反復処理する前に要素の合計数を決定する必要があります。ただし、IEnumerableは、反復せずに項目をカウントする直接的なメカニズムを提供しません。

反復なしのカウント

反復せずに項目のカウントを実現するには、次のことを考慮してください:

  • ICollection: データ ソースが実装している場合ICollection では、その Count プロパティに直接アクセスできます。 Iコレクションは、効率的にカウントできるコレクションを表します。

次の Tables プロパティがあるとします。

private IEnumerable<string> Tables
{
    get
    {
        yield return "Foo";
        yield return "Bar";
    }
}

反復なしでは、 ICollection を使用できます。項目を数えるには:

var count = (Tables as ICollection<string>).Count;
Console.WriteLine($"You'll process {count} tables");

注:

  • IEnumerable遅延評価を強調します。つまり、要素は要求された場合にのみ取得されます。
  • ICollectionは効率的なコレクション表現により直接カウントをサポートします。アイテム数のカウントが重要なパフォーマンス要件である場合は、このオプションを選択してください。

以上が反復せずに IEnumerable 内の項目をカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。