2011-01-05 14 views
0

ここで最高のタイトルではありません。Join(LinQ)で反復することを避ける

私はこのコードを持っているとそれはひどいです。これを書くには良い方法がありますか?

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

このコードは、linq2entityで使用するとひどくはありませんが、アイテムを繰り返します。 –

答えて

0
mandatoryFound = local.Agencies.GetAll().Where(a => a.Active && a.Mandatory && agencies.Any(ag => ag.AgencyId == a.Id)).Any() 
+0

'.FirstOrDefault()!= null'は' .Any() 'と同じです –

+0

なぜ 'FirstOrDefault()'となり、Anyでないのですか? –

+0

ありがとう@The_Smallestと@Saeed、あなたは正しい、固定;) –

関連する問題