1. ホーム
  2. c#

ListとIEnumerableの実用的な違い [重複]について

2023-09-01 17:58:14

質問

同じような投稿を読んで、ListがIEnumerableの一種であることを知りました。しかし、私はその2つの実用的な違いが実際に何であるかを本当に疑問に思っています。

いつもListを使っていて、IEnumerableを使ったことがない人へ。

  • この 2 つの間の実用的な違いは何ですか?
  • どのようなシナリオで、一方が他方よりも優れているのでしょうか?

以下は 実用例です。 : 4つの文字列を保存し、アルファベット順に並べ、別の関数に渡し、その結果をユーザに見せたい。何を使うか、なぜ使うか?

誰かがこれを解決してくれるか、正しい方向を示してくれることを願っています。 前もってありがとうございます。

どのように解決するのですか?

IEnumerableとListの重要な違いの1つは(一方がインタフェースで他方が具象クラスであることの他に)、IEnumerableは読み取り専用でListはそうでないということです。

したがって、コレクションに永続的な変更 (追加と削除) を行う機能が必要な場合は、List が必要です。 もし、コレクションの読み込み、ソート、フィルタリングが必要なだけなら、IEnumerable で十分です。

つまり、この例では、4 つの文字列を一度に 1 つずつ追加したい場合は、List が必要です。 しかし、コレクションを一度にインスタンス化するのであれば、IEnumerable を使用することができます。

IEnumerable firstFourLettersOfAlphabet = new[]{"a","b","c","d"};

そして、LINQを使って、好きなようにリストをフィルタリングしたり、ソートしたりすることができます。