からオブジェクトにアクセスしたいとします。サイズを決定するためだけにCollection
全体を反復処理しないようにしたいとします。Collection
Count
への呼び出しが実際にコレクションを反復するかどうかを判断および制御するにはどうすればよいですか? (私自身のICollection
) の実装を使用する以外に、つまり、これを提供する実装はありますか?
public void PrintThreeNames(ICollection<string> names)
{
//first I want to know if the collection has at least three elements.
if (names != null && names.Count >= 3)
{
IEnumerator<string> enumerator = names.GetEnumerator();
string value0 = enumerator.Current;
enumerator.MoveNext();
string value1 = enumerator.Current;
enumerator.MoveNext();
string value2 = enumerator.Current;
//print values.
Console.Writeline(value0 + value1 + value2);
}
}
プログラマーのヒーローの質問に答えて。IEnumerable<T>
コレクションに 100 万個のドキュメントを追加し、それを数えて への呼び出しの速度も確認できると思いCount
ます。
コレクションの数とアイテムごとのデータが非常に多いため、一度にすべてを返すのは問題になるため、IEnumerable
overを使用することを選択する可能性があるため、この質問をしました。Collection
IEnumarable
ただし、別の質問で、ジョシュアがロックするのは良い考えではないと指摘したことの欠点も知りたいです。