Инициализаторы объектов в запросе LINQ - можно ли повторно использовать вычисленные данные?

StackOverflow https://stackoverflow.com/questions/6331913

  •  27-10-2019
  •  | 
  •  

Вопрос

Я использую запрос linq, который выглядит (после некоторого упрощения) примерно так:

родовое слово

Что меня беспокоит, так это выражение вычисления, которое появляется дважды, для PassedUsersNum и CompletionRate.

Предполагая, что этот код генерирует код, как я могу написать его, повторно используя вычисление PassedUsersNum вместо того, чтобы снова писать это выражение?

Это было полезно?

Решение

Самый простой способ - использовать let, чтобы сначала ввести еще один шаг выбора:

родовое слово

Конечно, выражение будет оцениваться только один раз для каждой группы.

Другие советы

Вы также можете просто извлечь функцию Count в другой метод, который возвращает Func, если хотите, или метод, который принимает значение типа double и возвращает значение типа bool.

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top