CreateComparer
Определение
- Пространство имён
- Resto.Front.PrintTemplates.Cheques.Razor
IEqualityComparer<TObject> TemplateBase<T>.CreateComparer<TObject>(Func<TObject, TObject, bool> equals)
Определение
- Пространство имён
- Resto.Front.PrintTemplates.Cheques.Razor
Создаёт компаратор равенства из функции сравнения с постоянным хеш-кодом.
IEqualityComparer<TObject> TemplateBase<T>.CreateComparer<TObject>(Func<TObject, TObject, bool> equals)
- Возвращает
IEqualityComparer<TObject>- Допустимость null
- Не указана
- Объявлено в
- Resto.Front.PrintTemplates.Cheques.Razor.TemplateBase<T>
- Назначение модели
- Базовый класс шаблонов печати Legacy Razor. Model содержит данные документа типа T. Предоставляет методы форматирования и вывода разметки.
Параметры
Func<TObject, TObject, bool> equals- Функция сравнения; не должна быть null. Получает исходные операнды, включая null для ссылочных типов.
Параметры типа
TObject- Тип сравниваемых объектов.
Возвращаемое значение
Новый IEqualityComparer<TObject>, передающий вызовы заданным функциям.
Особенности поведения
GetHashCode всегда возвращает 0: контракт равенства и хеширования соблюдается, но поиск в хеш-коллекциях может стать линейным. Для больших Distinct, GroupBy и словарей предпочтительна перегрузка с согласованной функцией хеширования. Исключения equals передаются при выполнении сравнения.
Исключения
System.ArgumentNullException- equals равен null.
Пример
var comparer = CreateComparer<string>(StringComparer.OrdinalIgnoreCase.Equals);
comparer.Equals("Tea", "TEA"); // true
comparer.GetHashCode("Tea"); // 0Аргументы типа
TObject- Описание этого элемента отсутствует.
IEqualityComparer<TObject> TemplateBase<T>.CreateComparer<TObject>(Func<TObject, TObject, bool> equals, Func<TObject, int> getHashCode)
Определение
- Пространство имён
- Resto.Front.PrintTemplates.Cheques.Razor
Создаёт компаратор равенства из функций сравнения и вычисления хеш-кода.
IEqualityComparer<TObject> TemplateBase<T>.CreateComparer<TObject>(Func<TObject, TObject, bool> equals, Func<TObject, int> getHashCode)
- Возвращает
IEqualityComparer<TObject>- Допустимость null
- Не указана
- Объявлено в
- Resto.Front.PrintTemplates.Cheques.Razor.TemplateBase<T>
- Назначение модели
- Базовый класс шаблонов печати Legacy Razor. Model содержит данные документа типа T. Предоставляет методы форматирования и вывода разметки.
Параметры
Func<TObject, TObject, bool> equals- Функция сравнения; не должна быть null. Получает исходные операнды, включая null для ссылочных типов.
Func<TObject, int> getHashCode- Функция хеширования; не должна быть null и должна возвращать одинаковый хеш для равных объектов.
Параметры типа
TObject- Тип сравниваемых объектов.
Возвращаемое значение
Новый IEqualityComparer<TObject>, передающий вызовы заданным функциям.
Особенности поведения
Равенство должно быть рефлексивным, симметричным и транзитивным и согласовываться с хешированием. Если возможен null, функции должны его обрабатывать. Исключения функций передаются при использовании компаратора, а не при его создании.
Исключения
System.ArgumentNullException- equals или getHashCode равен null.
Пример
var comparer = CreateComparer<string>(StringComparer.OrdinalIgnoreCase.Equals,
s => s == null ? 0 : StringComparer.OrdinalIgnoreCase.GetHashCode(s));
comparer.Equals("Tea", "TEA"); // trueАргументы типа
TObject- Описание этого элемента отсутствует.