Есть ли в .NET официальный или стандартный класс для массивов, которые используют равенство значений, а не равенство ссыC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли в .NET официальный или стандартный класс для массивов, которые используют равенство значений, а не равенство ссы

Сообщение Anonymous »

Я постоянно сталкиваюсь со случаями, когда мне нужен массив с равными значениями. Массив записей, который сам по себе действует как запись.
В настоящий момент я работаю над IIncrementalGenerator и для того, чтобы все промежуточные данные быть правильно запомнены и кэшированы и, таким образом, получить подлинно возрастающую производительность, все эти данные требуют равенства значений.
Я нашел множество людей, пишущих и предлагающих по сути одно и то же: «обернуть массив, пройти через него». все функции, добавьте переопределения для Равно и == и != и GetHashCode". GitHub Copilot и ChatGPT с радостью написали это для меня.
Неудивительно, что во всем вышеперечисленном (написанном людьми или роботами) опущено несколько методов массива или другие неудобные небольшие различия, которые дать ощущение победы энтропии.
Я также нашел документацию, в которой решительно заявляет, что ImmutableArray действительно делает это, и все же, когда я только что попробовал это, я определенно получил только равенство ссылок.
Я собираюсь написать или скопировать/вставить свой собственный тип ArrayWithValueEquality (скорее всего, скопировать и вставить), но такое ощущение, что я просто добавляю к хаос.
Есть ли более централизованный согласованный способ сделать это? Я упускаю что-то очевидное?

Подробнее здесь: https://stackoverflow.com/questions/790 ... e-equality
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»