2009-08-04 14 views
5

Özelliklerinden biri olarak bir dize dizisi içeren bir List nesnem var. Tüm değerleri içeren ayrı bir dizi dizisi almak istiyorum.LINQ - Bir nesne hiyerarşisindeki tüm çocukları seç

Benim nesne şöyle görünür: Bazı hayvanat bahçeleri sadece bir hayvan olabilir

public class Zoo { 
    string Name { get; set;} 
    string[] Animals { get; set;} 
} 

, bazı birçok olabilir. List<Zoo>'daki tüm Zooslardaki tüm hayvanların eşsiz bir listesini almak için en basit Lambda ifadesi veya LINQ sorgusu ne olurdu?

cevap

12
var query = zoos.SelectMany(zoo => zoo.Animals) 
       .Distinct(); 

Veya bir sorgu ifadesi hayranı iseniz (bunu basit bir şey için olmaz):

var query = (from zoo in zoos 
      from animal in zoo.Animals 
      select animal).Distinct(); 
+0

teşekkür Jon. Benim tarafımdaki yazım hatası. –

+0

Yazım hatası nerede kaldı? Özlemiş olmalıyım :) –

+4

Yazım hatası uygulamamdaydı. Visual Studio için StackOverflow eklentisi çıkana kadar bekleyemiyorum, böylece uygulamalarımı çalıştığım sırada düzeltebilirsiniz. :-) –