Genau so etwas habe ich auch, damit ich deine Bezeichner richtig verstehe:
- Stör1: Neu festgestellte Störungen
- Stör2: Alle akut anstehenden Störungen
- StörDB: Langzeit-Archivierung für alle aufgetretenen Störungen
Bei dir taucht im Konzept nicht auf dass man Störungen explizit "zur Kenntnis nehmen" kann und man später auch sieht ob man die Störung überhaupt mitbekommen hat oder sie nur kurz da war und dann wieder verschwand?
Wenn ja, folgende Fragen:
- Stör1 ist doch nur temporär für einen Durchlauf. Egal ob deine Gleichheit-Prüfung (nach welchen Kriterien auch immer) zutrifft oder nicht, müsste man die Störung nach den Tests nicht aus "Stör1" entfernen? Diese Liste ist doch sonst zu nichts mehr gut
- Wo ist das Problem bei Fall 2? Wenn du weißt dass "Störung 42" jetzt nicht mehr auftritt gehst du deine Liste "Stör2" durch. Gefunden? Nimm den Eintrag, setze das End-Datum, entferne ihn aus "Stör2" und übertrage ihn in "StörDB"
Anbei: Tu dir den Gefallen und geh bei einem Management dass Elemente zwischen Containern überträgt von Arrays weg. Nimm einen halbwegs intelligenten Container wie eine Liste oder ein Dictionary dass anhand der ID deiner Störung dir schon ein passendes Element gibt. Das ganze Hin-und-her-Iterieren über Arrays und Elemente entfernen (eventuelle Lücken schließen) bläht doch den Code extrem auf und ist stark fehleranfällig.