ломаются как только я использую поле с коллекцией, вот и вопрос почему hascode и equals для коллекций не определены (хотя примерно понимаю почему), кароче че делать то, самописные коллекции создать с equals и hascode?
Ты сам то понял, что говоришь?
Ты бы лучше рассказал что делаешь и зачем
record A(string Name, string[] Flags) - работает через жопу. A("1", {"1", "2"}) != A("1", {"1", "2"})
Все верно, так и должно быть
с такой же логикой и со строкой должно быть, это тоже массив.
А чел, кажись, Equals и SequenceEquals путает
Где разница между строкой и массивом по факту? У строки просто по дефолту объявлены hashcode и equals, а у массива нет и из-за этого вот проблема с рекордом
У массива тоже
так почему {1, 2} != {1, 2}, а "1, 2" == "1, 2" массив по референсу сравнивается
Строка не массив, строка это строка. У него своя логика сравнивания, у массивов -- своя
А как он должен сравниваться, как не по референсу?
Потому что, это разные типы?
Скорее всего тут произошло интернирование строки и они ссылаются на один и тот же объект в памяти (это не учитывая то, что для строк можно ещё по рабзному сравниволку заводить)
Строки сперва по ссылке сравниваются, потом по символам
Обсуждают сегодня