private void AddRaceDate(DateTime raceWhen, int raceNumber) { var insertPos = 0; var foundPos = false; var fsdr = new FleetSeriesDateRace(raceWhen, raceNumber); var item = new ListItem { Text = fsdr.Print() }; while (!foundPos && insertPos < _fleetSeriesDateRace.Count) { if (_fleetSeriesDateRace[insertPos].When > fsdr.When) { foundPos = true; } else { insertPos++; } } if (foundPos) { // Put into position listSelectedRace.Items.Insert(insertPos, item); _fleetSeriesDateRace.Insert(insertPos, fsdr); } else { // Add to the end listSelectedRace.Items.Add(item); _fleetSeriesDateRace.Add(fsdr); } }
private void RecalcRaceNumbers() { var datesCount = _fleetSeriesDateRace.Count; var fsdr = new FleetSeriesDateRace[datesCount]; _fleetSeriesDateRace.CopyTo(fsdr); // make a backup copy listSelectedRace.Items.Clear(); _fleetSeriesDateRace.Clear(); for (var index = 0; index < datesCount; index++) { AddRaceDate(fsdr[index].When, SelectedNextRaceNumber + index); } }