IEnumerable<T>
とIReadOnlyList<T>
をリターンパラメータタイプまたは入力パラメータタイプとして選択する点の違いは何ですか?IEnumerable <T> vs IReadOnlyList
IEnumerable<T>
は何IReadOnlyList<T>
IEnumerable<T>
とIReadOnlyList<T>
をリターンパラメータタイプまたは入力パラメータタイプとして選択する点の違いは何ですか?IEnumerable <T> vs IReadOnlyList
IEnumerable<T>
は何IReadOnlyList<T>
IEnumerable<T>
によって露出されるが、いくつかのデータに対する順方向専用カーソルを表す.Count
と.ElementAt
を提供します。一度に1つのアイテムを見ながら、コレクションの最初から最後まで行くことができます。
IReadOnlyList<T>
は、読み取り可能なランダムアクセスコレクションを表します。
IEnumerable<T>
は、オンザフライで生成されたアイテム、ネットワーク経由のデータ、データベースからの行などを表すことができるという点でより一般的です。一方、基本的にはメモリ内のコレクションのみを表します。IReadOnlyList<T>
各項目を一度だけ見る必要がある場合は、IEnumerable<T>
が優先されます。これはより一般的です。
実際にC++標準テンプレートライブラリを見てみることをお勧めします。様々なタイプのイテレータについての議論は、実際にはあなたの質問にかなりよく対応しています。