1. ホーム
  2. c#

[解決済み] なぜReadOnlyCollectionではなくImmutableListを使用するのですか?

2023-09-04 01:14:52

質問

.NET 4.5では、新しい名前空間である System.Collections.Immutable

このパッケージは、スレッドセーフで、決して内容が変更されないことが保証されたコレクションを提供します(immutable collectionsとしても知られています)。

私は混乱しています。スレッドセーフの問題は、すでに ReadOnlyCollection クラスで解決済みではありませんか?なぜ ImmutableList を使うのでしょうか?


私は、このような IReadOnlyList インタフェース . 他のスレッドが別のインターフェイスによってオブジェクトを編集する可能性があるため、これは暗黙のうちにスレッドセーフの問題を解決していないのです。

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

を使用して ReadOnlyCollection :

読み取り専用のコレクションは、単にコレクションを変更できないようにするラッパーを持つコレクションです。 コレクションを変更できないようにするラッパーを持つコレクションです。 コレクションに変更が加えられると、読み取り専用のコレクションはその変更を反映します。 変更を反映します。

これは ImmutableList .