suchen Ich brauche einen Baum für Daten zu suchen, die überall im Baum sein könnten. Wie kann das mit linq gemacht werden?Wie hierarchische Daten mit Linq
class Program
{
static void Main(string[] args) {
var familyRoot = new Family() {Name = "FamilyRoot"};
var familyB = new Family() {Name = "FamilyB"};
familyRoot.Children.Add(familyB);
var familyC = new Family() {Name = "FamilyC"};
familyB.Children.Add(familyC);
var familyD = new Family() {Name = "FamilyD"};
familyC.Children.Add(familyD);
//There can be from 1 to n levels of families.
//Search all children, grandchildren, great grandchildren etc, for "FamilyD" and return the object.
}
}
public class Family {
public string Name { get; set; }
List<Family> _children = new List<Family>();
public List<Family> Children {
get { return _children; }
}
}
@GregHollywood Ich habe einen Blog-Post gemacht über das Problem und die Lösung.Sie können es hier überprüfen: http://mjuraszek.blogspot.com/2013/08/querying-hierarchical-data-using-linq.html – MarcinJuraszek
Während das, was Sie auf Ihrem Blog haben, ist korrekt Implementierung von flachte über IEnumerable ist hier nicht.Es wird Duplikate erstellen ... –
Rashack
@Rashack, ich sehe das nicht, obwohl jedes Node-Objekt zurückgegeben wird immer noch seine volle Ergänzung von Kindern haben. –