Часто бывает, что мы соединяем 2 коллекции или группируем коллекцию при помощи
LINQ to Objects. При этом происходит сравнение ключей, выбранных для группировки или связывания.
К счастью, стоимость этих операций равна O(n). Но в случае больших коллекций нам важна эффективность самого сравнения. Если в качестве ключей выбраны строки, то какая из реализаций сравнения будет использована по умолчанию, подходит ли эта реализация для ваших строк и можно ли,
указав IEqualityComparer<string> явно, сделать эту операцию быстрее?
clients.Join(orders, c => c.Name, o => o.ClientName, (c, o) => CreateOrederDto(c, o));
Как же выбирается реализация компаратора, если пользователь не указал её явно?
Пороемся в исходном коде coreclr
Комментариев нет:
Отправить комментарий