Метод GetHashCode
Метод GetHashCode класса Object
возвращает число, связанное с содержимым
объекта. Его используют вместе с
Equals в словарях
и множествах. Конкретное число может
отличаться между запусками.
Синтаксис
obj.GetHashCode()
Пример
Давайте сравним хеш одной строки с самим собой:
using System;
class Program
{
static void Main()
{
string str = "abcde";
Console.WriteLine(str.GetHashCode() == str.GetHashCode());
}
}
Результат выполнения кода:
True
Пример
Давайте проверим, что равные int дают один хеш:
using System;
class Program
{
static void Main()
{
int a = 5;
int b = 5;
Console.WriteLine(a.GetHashCode() == b.GetHashCode());
}
}
Результат выполнения кода:
True
Пример
Давайте сравним хеш двух разных строк:
using System;
class Program
{
static void Main()
{
string a = "abcde";
string b = "12345";
Console.WriteLine(a.GetHashCode() == b.GetHashCode());
}
}
Результат выполнения кода:
False
Пример
Давайте положим строку в HashSet и проверим наличие:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var set = new HashSet<string> { "abcde" };
Console.WriteLine(set.Contains("abcde"));
}
}
Результат выполнения кода:
True