im Wörterbuch unteren bis zum Ende sind Ich habe ein Dictionary<int,List<Thing>>
Entfernen Werte, die
A Thing 2 Felder hat, eine ID und eine Stufe.
In jeder Ding-Liste finden Sie nie 2 Dinge mit der gleichen ID.
Der Schlüssel des Wörterbuchs ist Zeit und es nimmt zu. Mit steigender Zeit kann der Wert einer Sache erhöht oder verringert werden, aber die letzte Stufe für diesen Wert sollte die höchste Ebene sein, die erreicht wurde.
Zum Beispiel mit 2 Dinge:
T=1,LV=3,LV=4
T=2,LV=4,LV=4
T=3,LV=4,LV=4
T=4,LV=3,LV=2
T=5,Lv=2,LV=4
T=6,LV=3,LV=3
T=7 ,LV=3
Nach diesem Prozess nun das Wörterbuch aussehen wird:
T=1,LV=3,LV=4
T=2,LV=4,LV=4
T=3,LV=4,LV=4
T=4, ,LV=2
T=5, ,LV=4
T=6, ,
T=7 ,
Auf den Punkt gebracht:
ThingIds = GetAllThingIds()
foreach thingId in thingIds
Find highest level of thing
from lastSecond to firstSecond
let thingAtSecond = secondThings[thingId];
if thingAtSecond.Level == highestLevel then break;
else remove this thing at this second
Noch nicht klar. Möchten Sie die Liste ändern, indem Sie alle 'Thing' entfernen, die' LV' sind höher als die 'LV' der nächsten Sache? –
@TimSchmelter Ja genau, wir modifizieren nur die Liste, werden sie nie los. – jmasterx
Also, was willst du? Löschen Sie diese "ungültige" Sache, so dass immer die letzte die höchste ist? –