質問「多値ディクショナリTValue
」に対する複数の回答は、クラスのように不変クラスを使用することを提案していますDictionary<TKey, TValue>
。
受け入れられたJon Skeetの回答Pair
は、読み取り専用プロパティを持つクラスと、不変を使用する@teedyayの回答Tuple
を提案しています。
そのようなアプローチの理論的根拠 (または考えられる利点) は何ですか?
副次的な質問: First と Second のそれぞれのプロパティにセッターがない場合に、 TFirst と TSecond を読み取り専用にする
理由:
private readonly TFirst first;
private readonly TSecond second;
public TFirst First
{
get { return first; }
}
public TSecond Second
{
get { return second; }
}
更新:
値のカスタム クラスを持つ辞書を使用しています。
そして値は更新されています。
それらを不変にする理由(利点)は何ですか?
それも不変であることがわかり、Lookup<TKey, TElement> Class
LINQ クエリを使用する利点を見逃していると思いました (?)
もしそうなら、何が欠けているのか例を挙げていただけますか?