2017-02-23 4 views
1

MSDNのドキュメントによれば、FindItemsResultsはIEnumerableを実装しています。 ICollectionを実装するItemsというプロパティがあります。コレクション内の項目がFindItemsResultsオブジェクトを反復処理するときに表示される項目と同じ項目であるかどうかは、ドキュメントのどこにもわかりません。これらのアイテムは同じですか?FindItemsResultsとFindItemsResults.Itemsの繰り返しの違いは何ですか?

使用されている場合は、なぜFindItemsResultsでもItems性質を持っているのですか? ICollectionを実装するだけでなく、そのプロパティを気にしないのはなぜですか?

+0

ベースオブジェクトを反復処理してもすぐに結果が得られるとは限りませんが、 '.Items'を呼び出すと、その中にすべてが入ったコレクションが得られます。 – DavidG

答えて

1

これは、配列またはコレクションとして[アイテム]プロパティを持っているし、その後EFクエリのためのIEnumerableを使用してそれらにアクセスするための簡単な方法を可能にする一般的です。

FindItemsResults membersはアイテムが結果であることを言うん。

+0

多分私は何かを理解していない。なぜ 'Items'プロパティに気をつけますか?単にICollectionを実装しないのはなぜですか? – Daniel

+0

IEnumerableは固定サイズです。したがって、デフォルトではアイテムの追加や削除はできません。反復とクエリのみが可能です。 ICollectionにはこれらの制限はありません。 IEnumerableが最適なデフォルトになるように、検索結果セットを変更することは望ましくありません。また、結果セットを反復すると仮定しているため、この使用には最適です。 –

関連する問題