2012-03-16 5 views
2

これに複数のフィールドマッチングを導入する方法を理解しようとしています。今は、一致するUserIdに基づいて社内テーブルに参加しています。しかし、もし私もそこにANDを持っていたら、c.SomeField = somevalueラムダ式による複数フィールド結合式

あなたは匿名型に参加する必要があり
var companyUsers = users.Where(u => u.IsEmployee) 
         .Join(companies, 
           u => u.UserId, c => c.UserId, 
           (u, c) => u.UserId) 
         .ToList(); 
+0

横にスクロールする必要がない場合は、コードを読むのがはるかに簡単です... LINQクエリは、一般的に、縦に積み重ねると非常にうまく動作します。例については私の答えを参照してください... –

答えて

3

as.Join(bs, a => new { a.X, a.Y }, b => new { b.X, b.Y }) 
+0

is itワーキング?? –

+0

は動作していますか?私はそれを試しましたが、できませんでした –

+0

@ JohnNguyen:どうしてですか?何が起こった? – SLaks

3

somevalue(すなわちユーザーとは無関係の)一定であるならば、あなただけのcompanies最初にフィルタを適用する必要があります

var companyUsers = users.Where(u => u.IsEmployee) 
         .Join(companies.Where(c => c.SomeField == someValue), 
           u => u.UserId, c => c.UserId, (u, c) => u.UserId) 
         .ToList(); 

の場合ユーザーの2つのフィールドを会社の2つのフィールドに結合する必要がある場合は、SLaksのように匿名タイプを使用します。

+0

ありがとう、私はLINQがそれほど簡単であるとは思わない。まだそれに流暢にしようとしています。 – PositiveGuy

関連する問題