Hallo Community,
Ich habe ein kleines Problem. Ich habe eine unbestimmte Menge von Werten, die ich als Index benutzen möchte und zu diesen Indexen gibt es eine eigene Klasse als zu speichernden Wert.
Diese möchte ich als Liste speichern.
Folgendes möchte ich tun:
Über eine Liste meiner Objekte iterieren und dann alle Objekte mit dem Wert 1 (bis x) wieder in eine neue Liste packen, wobei der Index für all diese Objekte 1 (bis n) wäre in der neuen Liste.
Codemäßig soll das so aussehen (scheint mir auch verständlicher als mein Text ^^)
foreach (Object O in MyObjects)
{
MyNewList[O.MyValue].Add(O);
}
Wie muss ich MyNewList anlegen, damit es funktioniert?
Gruß Thomas
Hallo Thomas B,
guck dir mal das Dictionary<TKey, TValue> an.
Damit hast du dann deine Key-Value Pair wie du es brauchst.
Mit einer List ist das ganze ein Gefummel.
Wenn du einen Index aus irgendwelchen Gründen auslassen musst dann hast du bei der Liste schon ein Problem.
Gruß
Michael
Hallo Thomas B,
seit .NET 3.5 existieren Extension Methods und LINQ. Das wäre so ein typischer Fall, wo man mit LINQ oder Extension Methods arbeiten könnte. Anstatt Schleifen in Schleifen zu verwenden, kannst du einfach eine Abfrage schrieben. Das vereinfacht das Arbeiten mit Collections enorm. Aber wie michlG schon sagte - es ist ein Gefummel.
zero_x
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.
Hallo Thomas B,
Wie muss ich MyNewList anlegen, damit es funktioniert?
wenn MyValue vom Typ int ist, einfach als Object [] [] myNewList
.
BTW: Nach den Namenskonvetionen sollten Variablen mit einem Kleinbuchstaben beginnen.
herbivore