f0f1f2.studio Справочник шаблонов
Русский
Открыть приложение

CreateComparer

Определение

Пространство имён
Resto.Front.PrintTemplates.Cheques.Razor

IEqualityComparer<TObject> TemplateBaseCore<T>.CreateComparer<TObject>(Func<TObject, TObject, bool> equals)

Определение

Пространство имён
Resto.Front.PrintTemplates.Cheques.Razor

Создаёт компаратор равенства из функции сравнения с постоянным хеш-кодом.

IEqualityComparer<TObject> TemplateBaseCore<T>.CreateComparer<TObject>(Func<TObject, TObject, bool> equals)
Возвращает
IEqualityComparer<TObject>
Допустимость null
Не указана
Объявлено в
Resto.Front.PrintTemplates.Cheques.Razor.TemplateBaseCore<T>
Назначение модели
Базовый класс шаблонов печати RazorEngineCore. 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> TemplateBaseCore<T>.CreateComparer<TObject>(Func<TObject, TObject, bool> equals, Func<TObject, int> getHashCode)

Определение

Пространство имён
Resto.Front.PrintTemplates.Cheques.Razor

Создаёт компаратор равенства из функций сравнения и вычисления хеш-кода.

IEqualityComparer<TObject> TemplateBaseCore<T>.CreateComparer<TObject>(Func<TObject, TObject, bool> equals, Func<TObject, int> getHashCode)
Возвращает
IEqualityComparer<TObject>
Допустимость null
Не указана
Объявлено в
Resto.Front.PrintTemplates.Cheques.Razor.TemplateBaseCore<T>
Назначение модели
Базовый класс шаблонов печати RazorEngineCore. 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
Описание этого элемента отсутствует.