AW: Collection Indexwert
15.08.2007 13:25:40
Jan
Moin Gerd
Was ich brauche:
eine Funktion, die mir aus der For Each Schleife heraus den Indexwert des aktuellen Elementes gibt.
Sagen wir mal ich hab 10 Zinsassets in einer Collection Portfolio. Für jedes Jahr und jedes Zinsasset wird in einer For Each Schleife getestet, ob es im betreffenden Jahr ausgelaufen ist. Ist das der Fall, soll es aus dem Portfolio entfernt werden.
Um das Zinsasset aus dem Portfolio zu entfernen brauche ich seinen Indexwert (die Mächtigkeit der Menge der Indexwerte von der Portfolio Collection ist myPortfolio.Count), den ich nicht vorgehalten habe. Wenn man den Indexwert nicht vorhält, braucht man also eine Möglichkeit ihn ad hoc (in diesem Fall während des Durchlaufs der For Each Schleife) herauszubekommen. Das geht (soweit ich bisher rausgefunden habe) wohl leider nicht.
Da sich der Indexwert der einzelnen Zinsassets ändert, sobald welche aus dem Portfolio entfernt werden, habe ich das ganze jetzt über eine Eigenschaft der Zinsassets gelöst, die statisch ist.
Jedes Zinsasset hat eine Eigenschaft "Name", die eineindeutig ist. Beim Hinzufügen der einzelnen Zinsassets zum Portfolio benutze ich die Namenseigenschaft als benutzerdefinierten Indexwert (genannt "key").
Die Syntax sieht dann anstelle von:
myPortfolio.Add myZinsasset
so aus:
myPortfolio.Add myZinsasset, myZinsasset.Name
Aus Performancegründen wäre es mir eigentlich lieber, das ganze über den Indexwert zu lösen, aber quick'n'dirty geht es erstmal so ;-)
Beste Grüße,
Jan