web-dev-qa-db-ja.com

Itemsプロパティが読み取り専用ではなく設定できるクラスTupleのバージョンはありますか?

ItemsプロパティがTupleではなく、設定できるクラスreadonlyの組み込みバージョンがあるかどうかを知りたいです。

または、誰かが私にそのようなバージョンを提供できますか?

Tupleクラスの基本関数を実装するソリューションを探しています(EqualsGetHashCode

32
GianT971

いいえ、前述のようにTuple<>は不変であることが意図されています。

同じことを行う可変タイプが必要な場合は、カスタムPairクラスを使用しますが、関数の概念を採用するという精神では、使用しないようにしています。

namespace StackOverflow.Helpers
{
    public class Pair<T1, T2>
    {
        public T1 First { get; set; }
        public T2 Second { get; set; }
    }
} 
62
Ritch Melton

GetHashCodeは等しいインスタンスに対して同じハッシュコードを返す必要があり、構築後に不変である必要があるため、EqualsおよびGetHashCodeをオーバーライドする汎用Tuple実装には、ラップされたアイテムの読み取り専用プロパティが必ずあります。

したがって、あなたが探しているものを見つける可能性は低いです。なぜ可変性とEquals/GetHashCodeオーバーライドの両方が必要なのかは明確ではありませんが、もしそれを理解し、リスクを理解するなら、おそらく自分でロールバックする必要があります。

5
Joe