Varlıklar bu seri vs groupjoin katıl
Web arandı ama hala cant basit bir cevap bulmak. Birisi GroupJoin
(basit İngilizce) lütfen açıklayabilir mi? Nasıl bir düzenli iç farklı Join
? Yaygın olarak kullanılır? Sadece yöntem sözdizimi için mi? Ne sorgu sözdizimi hakkında? Bir c# kod örneği, güzel olurdu.
CEVAP
Davranış
Sana iki liste olduğunu varsayalım:
Id Value
1 A
2 B
3 C
Id ChildValue
1 a1
1 a2
1 a3
2 b1
2 b2
Sen ne zamanJoin
bu iki sonucu olacak Id
sahada listeler:
Value ChildValue
A a1
A a2
A a3
B b1
B b2
Sen ne zamanGroupJoin
bu iki sonucu olacak Id
sahada listeler:
Value ChildValues
A [a1, a2, a3]
B [b1, b2]
C []
Join
üst ve alt değerleri (Tablo) düz bir sonuç üretir.
GroupJoin
listedeki ilk giriş listesi, ikinci liste katıldı girişleri bir grup her üretiyor.
Join
SQL INNER JOIN
eşdeğerdir yüzden: C
için girişleri vardır. GroupJoin
eşdeğer OUTER JOIN
: C
sonuç kümesinde, ama boş bir liste ile ilgili girdileri (bir SQL sonuç seti olur satır C - null
).
Bu sözdizimi içine bakarak doğrudan her zaman biraz kafa karıştırıcı, çünkü küresel bir şekilde farklılıkları işaret, bir yol oldu. Ama şimdi sözdizimi ayrıntılar için hazırız.
Sözdizimi
Böylece iki liste IEnumerable<Parent>
IEnumerable<Child>
sırasıyla olalım. (Varlıklara Etmeniz halinde: IQueryable<T>
).
Join
sözdizimi olacaktır
from p in Parent
join c in Child on p.Id equals c.Id
select new { p.Value, c.ChildValue }
X nerede IEnumerable<X>
dönen iki özelliği, Value
ChildValue
ile anonim bir türüdür. Bu kapsamlı sözdizimi başlık altında Join
yöntemi kullanır.
GroupJoin
sözdizimi olacaktır
from p in Parent
join c in Child on p.Id equals c.Id into g
select new { Parent = p, Children = g }
Y anonim tip 35 ** yazın ve bir özellik bir özellik ibaret olduğu IEnumerable<Y>
dönen 36**. Bu kapsamlı sözdizimi başlık altında GroupJoin
yöntemi kullanır.
Sadece listeleri ** 39, söyle bir liste seçin ki ikinci sorgu, select g
yapabiliriz. Birçok durumda, üst dahil seçmek daha yararlıdır.
Sorun string int dönüştürme varlıklar ...
Varlıklar bu seri - Sql "" t...
SERİ - Tarafından Gruba Katıl, Sayım v...
Nasıl seri katıl bir yöntem sözdizimi ...
Varlıklar bu SERİ 'Sistem yöntemi...