diff --git a/AirBomber/AirBomber/FormMapWithSetAirplanes.cs b/AirBomber/AirBomber/FormMapWithSetAirplanes.cs index 32d0bd4..6b4eb6c 100644 --- a/AirBomber/AirBomber/FormMapWithSetAirplanes.cs +++ b/AirBomber/AirBomber/FormMapWithSetAirplanes.cs @@ -142,7 +142,7 @@ return; } int pos = Convert.ToInt32(maskedTextBoxPosition.Text); - if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] - pos) + if (_mapAirplanesCollectionGeneric - pos != -1) { MessageBox.Show("Объект удален"); pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet(); diff --git a/AirBomber/AirBomber/MapWithSetAirplanesGeneric.cs b/AirBomber/AirBomber/MapWithSetAirplanesGeneric.cs index 444dbfd..baef1ea 100644 --- a/AirBomber/AirBomber/MapWithSetAirplanesGeneric.cs +++ b/AirBomber/AirBomber/MapWithSetAirplanesGeneric.cs @@ -54,8 +54,8 @@ namespace AirBomber /// /// /// - /// - public static bool operator +(MapWithSetAirplanesGeneric map, T airplane) + /// Возвращает позицию вставленого объекта либо -1, если не получилось его добавить + public static int operator +(MapWithSetAirplanesGeneric map, T airplane) { return map._setAirplanes.Insert(airplane); } @@ -64,8 +64,8 @@ namespace AirBomber /// /// /// - /// - public static bool operator -(MapWithSetAirplanesGeneric map, int position) + /// Возвращает удаленный объект, либо null если его не удалось удалить + public static T operator -(MapWithSetAirplanesGeneric map, int position) { return map._setAirplanes.Remove(position); } diff --git a/AirBomber/AirBomber/SetAirplanesGeneric.cs b/AirBomber/AirBomber/SetAirplanesGeneric.cs index 8577377..41ddb96 100644 --- a/AirBomber/AirBomber/SetAirplanesGeneric.cs +++ b/AirBomber/AirBomber/SetAirplanesGeneric.cs @@ -65,13 +65,14 @@ namespace AirBomber /// Удаление объекта из набора с конкретной позиции /// /// - /// - public bool Remove(int position) + /// Возвращает удаленный объект, либо null если его не удалось удалить + public T Remove(int position) { - if (!isCorrectPosition(position) || position >= Count) - return false; - _places.RemoveAt(position); - return true; + if (!isCorrectPosition(position)) + return null; + var result = _places[position]; + _places[position] = null; + return result; } /// /// Получение объекта из набора по позиции