2017-01-25 8 views
0

ハイテク男は2つのテーブルLINQの完全外部私は完全外部を取得しようとしている

から参加ジョインEX:

Table_A 
-------- 
_a 
_c 

Table_B 
------ 
_a 
_b 

結果は

Table_C 
------- 
_a 
_b 
_c 

する必要がありますが、私はそうではありませんこれは私が

をやったものです

に実際の結果を得るように見えます

IEnumerable<string> leftOuter1 = (from watcher in _watchers 
            join attendee in attendees on watcher equals attendee into set 
            from attendee in set.DefaultIfEmpty() 
            select attendee); 

    IEnumerable<string> rightOuter1 = (from attendee in attendees 
             join watcher in _watchers on attendee equals watcher into set 
             from watcher in set.DefaultIfEmpty() 
             select watcher); 


    IEnumerable<string> participants1 = leftOuter.Union(rightOuter); 

_watchersには値 "_a"があります。

出席者の値 "_a"と "_b"。

firsの結果は_aですが、2番目の値は_a、nullです。私はここで間違って何をしていますか?

はあなたに感謝し、

答えて

0

あなたがトリックをしたこの

var firstNames = new[] { 
new { ID = 1, Name = "John" }, 
new { ID = 2, Name = "Sue" }, }; 

var lastNames = new[] 
{ 
new { ID = 1, Name = "Doe" }, 
new { ID = 3, Name = "Smith" }, 
}; 
var leftOuterJoin = from first in firstNames 
       join last in lastNames 
       on first.ID equals last.ID 
       into temp 
       from last in temp.DefaultIfEmpty(new { first.ID, Name =  default(string) }) 
       select new 
       { 
        first.ID, 
        FirstName = first.Name, 
        LastName = last.Name, 
       }; 
var rightOuterJoin = from last in lastNames 
       join first in firstNames 
       on last.ID equals first.ID 
       into temp 
       from first in temp.DefaultIfEmpty(new { last.ID, Name =  default(string) }) 
       select new 
       { 
        last.ID, 
        FirstName = first.Name, 
        LastName = last.Name, 
       }; var fullOuterJoin = leftOuterJoin.Union(rightOuterJoin); 

LINQ - Full Outer Join

+0

見る見ることができますありがとう –

関連する問題