IEnumerator、IEnumerable、ICollection、IListおよびそれらの一般的な対応物に関する多くのドキュメントと推奨事項を見つけました。悲しいことに、インターフェイスの階層全体、それらのインターフェイスの一般的な実装、およびそれらの各タイプの最適な使用法を説明するチュートリアルや本はまだ見つかりませんでした。
ジェネリック、そのインターフェイス、および C# でのジェネリックの推奨される使用例について、最もよく知っている情報源は何でしたか?
IEnumerator、IEnumerable、ICollection、IListおよびそれらの一般的な対応物に関する多くのドキュメントと推奨事項を見つけました。悲しいことに、インターフェイスの階層全体、それらのインターフェイスの一般的な実装、およびそれらの各タイプの最適な使用法を説明するチュートリアルや本はまだ見つかりませんでした。
ジェネリック、そのインターフェイス、および C# でのジェネリックの推奨される使用例について、最もよく知っている情報源は何でしたか?
私がそれらを理解するようになった主な方法は、それらのインターフェースを見ることでした。
継承は次のようになります。
IList:ICollection:IEnumerable
IEnumerableのインターフェイスを調べるときは、一連のアイテムをループできるようにするために必要な最低限のものしかないことに注意してください。カウントなどはありません。IEnumerableは、見ているのが単なるネットワーク経由のストリームであっても、うまく機能します。
ICollectionはCountを追加します。ある種のコレクションを実装していて、そのサイズが簡単にわかる場合は、これを実装する必要があります。この場合、汎用インターフェースは少し異なります。ICollection <T>には、メンバーを追加および削除してコレクションを変更するメソッドもあります。順序付けされていないセットは、ICollectionの適切な候補になります。
IListは、インデックスによってコレクションメンバーを取得および設定する機能を追加します。アイテムの順序が重要な場合にこれを使用します。インデックスがある場合は、4番目と5番目のアイテムを入れ替えて順序を変更するなどの操作を実行できます。
あなたはちょうど1つを逃した:)
IDictionary : IList : ICollection : IEnumerable