1. ホーム
  2. c#

[解決済み] IEnumerable<T> からアイテムを反復せずにカウントする?

2022-03-16 01:17:08

質問

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

それを反復して、#m個のうち#n個を処理するような書き方をするとしよう。

メインの反復処理の前に、反復処理を行わずにmの値を知る方法はありますか?

ご理解いただけたでしょうか?

解決方法は?

IEnumerable はサポートしていません。これはデザインによるものです。 IEnumerable は遅延評価を使用して、必要な要素を必要な直前に取得します。

もし、反復処理せずに項目の数を知りたい場合は ICollection<T> を持つ。 Count プロパティを使用します。