Вопросы по теме 'gethashcode'

Каков наилучший алгоритм переопределения GetHashCode?
В .NET GetHashCode метод используется в много мест в библиотеках базовых классов .NET. Его правильная реализация особенно важна для быстрого поиска элементов в коллекции или при определении равенства. Есть ли стандартный алгоритм или...
241568 просмотров
schedule 05.12.2023

Перегрузка GetHashCode и оператора равенства с использованием оператора XOR для перечислений
У меня есть следующий класс, который является частью пакета статического анализа. Объект MetricKey используется как ключ словаря. Decision , MetricUnit и Portfolio — все перечисления. Мне пришлось переопределить оператор равенства...
1447 просмотров
schedule 30.03.2023

GetHashCode для нулевых полей?
Как мне работать с нулевыми полями в функции GetHashCode ? Module Module1 Sub Main() Dim c As New Contact Dim hash = c.GetHashCode End Sub Public Class Contact : Implements IEquatable(Of Contact) Public Name As String...
15942 просмотров

Зачем использовать GetHashCode() вместо Equals()?
HashSet<T>.Add сначала сравнивает результаты GetHashCode . Если они равны, он вызывает Equals . Насколько я понимаю, для реализации GetHashCode необходимо что-то сделать с полями объекта. Простой пример реализации можно найти по...
2206 просмотров
schedule 13.09.2022

Почему мы реализуем GetHashCode в IEqualityComparer?
Я хочу получить отдельные элементы из List в C#, используя интерфейс IEqualityComparer . Но я не знаю о GetHashCode . Я реализовал методы GetHashCode и Equals . И как я могу вызвать метод Equals , чтобы получить отдельные элементы из списка...
2851 просмотров
schedule 21.05.2023

Будет ли string.GetHashCode() возвращать отрицательное значение?
Я пробовал с пакетом случайных строк, все значения, которые я получил, положительные, но мне интересно: Будет ли String.GetHashCode() возвращать отрицательное значение или 0? Поскольку возвращаемое значение равно int , я предполагаю, что это...
9850 просмотров
schedule 20.04.2022

C# GetHashCode с двумя Int16 тоже возвращает только до Int32?
Извините, что объединяю два вопроса в один, они взаимосвязаны. HashCode s вместо HashSet s и тому подобное. Насколько я понимаю, они должны быть уникальными, не меняться и представлять любую конфигурацию объекта в виде одного числа. Мой...
597 просмотров
schedule 02.01.2023

Могу ли я реализовать GetHashCode для своей пользовательской коллекции?
У меня есть пользовательская коллекция, как показано ниже public class CustomCollection<T>:IEnumerable<T>, IEnumerator<T> { int size = 0; int current = 0; int position = -1; CustomComparer<T> cmp = new...
453 просмотров
schedule 21.04.2022

32-битная хеш-функция для объектов C#
Я хочу переопределить метод GetHashCode() объекта во всех моих классах. Этот метод возвращает Int32. Все известные мне криптографические хеш-функции возвращают значения, которые не помещаются в 32-битное целое число. Я хочу максимально избежать...
4147 просмотров
schedule 03.05.2023

Реализация правильного GetHashCode
У меня следующий класс public class ResourceInfo { public string Id { get; set; } public string Url { get; set; } } который содержит информацию о каком-то ресурсе. Теперь мне нужна возможность проверить, равны ли два таких ресурса по...
464 просмотров
schedule 20.02.2023

Реализация Object.GetHashCode ()
Я читаю эффективный C # , и есть комментарий по поводу Object.GetHashCode() , который я не понял: Object.GetHashCode() использует внутреннее поле в классе System.Object для генерации хеш-значения. Каждому созданному объекту при...
1334 просмотров
schedule 01.04.2023

Хорошая практика GetHashCode?
Для проекта Delphi (построенного с помощью RAD Studio XE7) я хочу создать словарь кистей. Каждый элемент словаря содержит объект TMyBrush в качестве ключа, описывающего извлекаемую кисть, и кисть GDI+ в качестве значения. Класс TMyBrush содержит 3...
1009 просмотров
schedule 06.08.2022

Как реализовать GetHashcode для компаратора DateTime, допускающего разницу?
Я реализовал IEqualityComparer<DateTime> , который может сравнивать две даты на основе значения допуска в миллисекундах. Если разница между ними меньше допуска, их следует рассматривать как равные. Сторону Equals почти тривиально...
123 просмотров
schedule 15.12.2022