Что-то прямо сижу и тихо охрениваю.
В record нельзя добавить собственную реализацию эквивалентности (переопределит Equals) и при это они не умеют реализовывать эквивалентность для записей со списками.
record R(int X, ImmutableArray<int> Xs);
static class P
{
static void Main()
{
var r1 = new R(1,ImmutableArray.Create(2));
var r2 = new R(1,ImmutableArray.Create(2));
Console.WriteLine(r1 == r2);
}
}
Выводит False!
С массивами тоже самое. Т.е. любая ссылка в параметре и прощай эквивалентность. Причем и вручную это не ясно как исправить.
А как жить то с такими говнорекордами? Вот на фиг так делать?
Я что-то пропустил? Как обойти это безобразие?