Ich habe wie ähnliche Anfrage in untenstehenden Link„Gruppierung“ Wörterbuch nach dem Wert der Klasseneigenschaft
"Grouping" dictionary by value
Aber ich mag Gruppe basierend auf Eigenschaft der Klasse.
public class myClass1
{
public int id { get; set; }
public string networkId { get; set; }
}
Im folgenden Beispiel möchte ich eine Gruppe von NetworkID
var obj1 = new myClass1() { id = 11, networkId = "asdf1" };
var obj2 = new myClass1() { id = 22, networkId = "asdf2" };
var obj3 = new myClass1() { id = 33, networkId = "asdf3" };
var obj4 = new myClass1() { id = 44, networkId = "asdf1" };
var obj5 = new myClass1() { id = 55, networkId = "asdf2" };
var obj6 = new myClass1() { id = 66, networkId = "asdf1" };
var obj7 = new myClass1() { id = 77, networkId = "asdf1" };
var classDictionary = new Dictionary<int, myClass1>();
classDictionary.Add(1, obj1);
classDictionary.Add(2, obj2);
classDictionary.Add(3, obj3);
classDictionary.Add(4, obj4);
classDictionary.Add(5, obj5);
classDictionary.Add(6, obj6);
classDictionary.Add(7, obj7);
Dictionary<myClass1, List<int>> test2 =
classDictionary.GroupBy(r => r.Value.networkId)
//.ToDictionary(t => t.Key, t => t.Select(r => r.Value).ToList());
so dass das Ergebnis sein würde, ein Wörterbuch mit Schlüsselwert als je unter
"asdf1" -> List of obj1, obj4, obj6, obj7
"asdf2" -> List of obj2, obj5
"asdf3" -> List of obj3
Jede Hilfe?
Funktioniert das nicht? '. ToDictionary (t => t.Key, t => t.Wählen Sie (r => r.Value) .ToList());' – Rob
Nein, einige Kompilierung Fehler – user3663854
Oh, sollte es sein 'var test2 =' (oder 'Dictionary> test2 ='), da Sie eine Liste von 'myClass1', nicht' int' wollen. Auch in Zukunft bitte Fehlermeldungen, nicht nur, dass es ein Kompilierungsfehler ist - das hilft nicht sehr viel :) –
Rob