Gruppe durch Unterschiedliche Verwendung von Linq
Möchte ich deutlich Zusammenführen von zwei oder mehr Sammlungen auf eine id und erstellen Sie eine Auflistung der anderen Eigenschaft für jede id.
Ich habe ein Objekt foo
public class foo
{
public int id { get; set; }
public string color { get; set; }
}
Denen ich mehrere List<foo>
die gemeinsame id, aber mit verschiedenen Farben
//list 1
id = 1, color = "red"
id = 2, color = "blue"
id = 3, color = "green"
id = 1, color = "blue"
id = 2, color = "orange"
//list 2
id = 1, color = "black"
id = 2, color = "amber"
id = 3, color = "red"
id = 4, color = "red"
id = 2, color = "silver"
Will ich mit linq-zu-Projekt-eine neue Kollektion, die verschiedene auf die id, sondern erzeugen und in der Liste der color-Eigenschaft.
id = 1, color = { "red", "blue", "black" }
id = 2, color = { "blue", "orange", "amber", "silver" }
id = 3, color = { "green", "red" }
id = 4, color = { "red" }
Q: Wie kann das sein, geschrieben in linq
Du musst angemeldet sein, um einen Kommentar abzugeben.
Geben Sie eine Liste (Liste der Farben in der Struktur, die Sie wollen.
Wenn Sie möchten, dass die Farbe Feld ein Komma getrennter string ist, dann ändere es zu:
Ich denke, Sie wollen ein
Dictionary<int, List<string>>
statt:Jetzt können Sie Zugriff auf alle id ' s Farbe(N) in dieser Weise:
Concat
rufen, um zu demonstrieren, vernetzen sowohlList<Foo>
Listen zusammen.können Sie unten genannten code
Ich denke, das ist, was du suchst:
Versuchen Sie dies:
Habe ich noch nicht getestet, aber ich denke, es sollte okay sein...
Möglicherweise ein besserer Weg, es zu tun, aber dies sollte erhalten Sie die Arbeit für den moment!