Подтвердить что ты не робот

Есть ли версия класса Tuple, свойства Items которого не являются readonly и могут быть установлены?

Я хочу знать, есть ли встроенная версия класса Tuple, свойствами которого не являются readonly и могут быть установлены.

Или может кто-нибудь предоставить мне такую ​​версию?

Я ищу решение, которое реализует базовые функции класса Tuple, (Equals, GetHashCode)

4b9b3361

Ответ 1

Нет, как упоминалось, Tuple<> означает неизменное.

Я использую собственный класс Pair, если мне нужен изменяемый тип, который делает то же самое, хотя в духе охвата концепций функций я стараюсь не использовать его.

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

Ответ 2

Так как GetHashCode должен возвращать тот же хэш-код для экземпляров, которые равны и должны быть неизменными после построения, любая реализация Tuple общего назначения, которая переопределяет Equals и GetHashCode, обязательно будет иметь свойства readonly для обернутых элементов.

Поэтому вы вряд ли найдете то, что ищете. Мне непонятно, почему вы хотите, чтобы и изменчивость, и Equals/GetHashCode переопределялись, но если вы это сделаете и понимаете риски, вам, вероятно, придется катиться самостоятельно.