是否存在Tuple类的某个版本,其Items属性不是只读的,并且可以设置

本文关键字:只读 设置 属性 Tuple 存在 是否 版本 Items | 更新日期: 2023-09-27 18:11:38

我想知道是否有内置版本的类Tuple,其Items属性不是readonly,并且可以设置。

或者谁能给我一个这样的版本?

我正在寻找实现Tuple类的基本函数的解决方案,(Equals, GetHashCode)

是否存在Tuple类的某个版本,其Items属性不是只读的,并且可以设置

不,正如前面提到的,Tuple<>是不可变的。

如果我需要一个做同样事情的可变类型,我使用自定义Pair类,尽管在拥抱函数概念的精神中,我尽量不使用它。

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

由于GetHashCode应该为相等的实例返回相同的哈希码,并且在构造后应该是不可变的,因此任何覆盖Equals和GetHashCode的通用元组实现都必须为包装项具有只读属性。

因此你不太可能找到你要找的东西。我不清楚为什么要同时使用可变性和Equals/GetHashCode重写,但是如果您这样做,并且了解其中的风险,您可能不得不自己使用。