Избегайте итерации с помощью Join (LinQ) - PullRequest
0 голосов
/ 05 января 2011

Не самое лучшее название, я знаю.

У меня есть этот код, и он выглядит ужасно. Есть ли лучший способ написать это?

foreach (Agency agency in local.Agencies.GetAll().Where(a => a.Active).Where(a => a.Mandatory))
{
    if (agencies.Where(a => a.AgencyId == agency.Id).Any())
    {
        mandatoryFound = true;
        break;
    }
}

Итак, local - это мой контекст EF, а agencies - это список, отправленный клиентом. Мне нужно проверить, есть ли в этом списке хотя бы одно обязательное агентство.

1 Ответ

0 голосов
/ 05 января 2011
mandatoryFound = local.Agencies.GetAll().Where(a => a.Active && a.Mandatory && agencies.Any(ag => ag.AgencyId == a.Id)).Any()
...