2010-09-24 18 views
9

yeni tip oluşturmak için LINQ kullanmak nasıl farklı türleri (yani, List<Apple> ve List<Tiger>) ile nesnelerin iki List<T> sahiptir. Şimdi yeni (anonim) nesne türlerini oluşturmak için 2 nesneden özellikleri birleştirmek istiyorum. Ben LINQ ile elde nasılnesnelerin

?

+0

orada özellikleri Apple ve Aslında triger – anishMarokey

cevap

15

Yani sadece kaplan listenin ilk elemanı ile elma listenin ilk elemanını birleştirmek istiyorsun?

Eğer .NET 4 kullanıyorsanız eğer öyleyse, ve, sen Zip kullanabiliyorsanız:

var results = apples.Zip(tigers, (apple, tiger) => 
        new { apple.Colour, tiger.StripeCount }); 

Eğer .NET 4 kullanmıyorsanız, sen MoreLINQ içinde Zip yerine getirme kullanabilirsiniz. Eğer başka bir şekilde kaplanlar ile elma maç istiyorsa

, muhtemelen kullanmak istediğiniz bir katılmak:

var results = from apple in apples 
       join tiger in tigers on apple.Name equals tiger.Name 
       select new { apple.Color, tiger.StripeCount }; 
+0

içindedir şeye ben katılmadan haç buluyorum özellik. Ama yine de yardımın için teşekkürler. – Ricky

+0

@Ricky: Çapraz birleştirmeden ziyade bir birleştirme cümleciğini kullanabiliyorsanız *, daha verimli olacaktır. –