Инициализаторы объектов в запросе LINQ - можно ли повторно использовать вычисленные данные?
-
27-10-2019 - |
Вопрос
Я использую запрос linq, который выглядит (после некоторого упрощения) примерно так:
родовое словоЧто меня беспокоит, так это выражение вычисления, которое появляется дважды, для PassedUsersNum и CompletionRate.
Предполагая, что этот код генерирует код, как я могу написать его, повторно используя вычисление PassedUsersNum вместо того, чтобы снова писать это выражение?
Решение
Самый простой способ - использовать let
, чтобы сначала ввести еще один шаг выбора:
Конечно, выражение будет оцениваться только один раз для каждой группы.
Другие советы
Вы также можете просто извлечь функцию Count в другой метод, который возвращает Func, если хотите, или метод, который принимает значение типа double и возвращает значение типа bool.
родовое словоНе связан с StackOverflow