2009-08-04 17 views
5

Listのオブジェクトのうち、プロパティの1つとして文字列配列が含まれています。私はすべての値を含む別個の文字列配列を取得したい。LINQ - オブジェクト階層からすべての子を選択

私のオブジェクトは、次のようになります。いくつかの動物園には一つだけの動物を有することができる

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

、いくつかは、多くを有することができます。 List<Zoo>のすべての動物園ですべての動物のユニークなリストを私に得るための最も単純なラムダ式またはLINQクエリは何でしょうか?

答えて

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

それとも、(私はこの単純な何かのためではないでしょう)クエリ式のファンなら:

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

おかげで、ジョン。私の一部にはタイプミス。 –

+0

タイプミスはどこですか?私はそれを逃した必要があります:) –

+4

typoは私のアプリケーションにあった。 Visual Studio用のStackOverflowアドインが出てくるまで待つことができないので、私が働いているときに自分のアプリを修正できます。 :-) –