LINQ: Comment faire pour convertir la imbriquée hiérarchique objet d'aplatir l'objet

Comment convertir le imbriquée hiérarchique objet pour aplatir les objets à l'aide de LINQ? Je sais que nous pouvons facilement utiliser une boucle foreach pour y parvenir. Mais je me demandais si il y a une façon de l'écrire dans LINQ.

class Person{
   public int ID {get;set}
   public string Name {get;set}
   public List<Person> Children {get;}
}

De données :

ID   : 1

Name : Jack

Children

2 | Rose 

3 | Paul

Je voudrais convertir ces données dans aplatir format comme ci-dessous.

1 | Jack 

2 | Rose 

3 | Paul

Comment pouvons-nous faire avec Linq?

OriginalL'auteur Michael Sync | 2009-12-21