Re[9]: Эквивалентность record-ов
От: _FRED_ Черногория
Дата: 20.10.23 06:54
Оценка: 78 (1) +1
Здравствуйте, VladD2, Вы писали:

_FR>>Кажется, ни что не мешает выписать коллекции с нужным алгоритмом сравнения элементов и использовать в рекордах и туплах их и тогда будет "как нужно" вроде какой спец. поддержки от компилятора тут не требуется?

VD>В целом, да. Вот только в стандартных на это забили. Да и культура у дотнетных программистов явно не та, что показывает данная тема. Всем естественно противоестественное поведение.

Да тут совсем не в "культуре" дело, а в именно в том, что "в стандартных на это забили" и теперь уже есть то, что есть. И ломать это проблематично и люди просто не ожидают иного.

Решить это в целом вполне возможно:
  1. Выписать `IEqualityComparer`-ы для коллекций (имеющихся) вместо новых коллекций.
  2. Найти удобный способ связать компаратор с полем/свойством рекорда. Атрибут или приватное свойство с именем `<PropertyName>EqualityComparer` или что-то ещё или даже всё вместе.
  3. Сделать Source Generator. который вместо дефолтового компаратора будет брать тот, что указан выше.

Возможно, найдя хорошее решение для второго пункта, можно предложить его разработчикам языка.
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.