diff --git a/AirBomber/AirBomber/SetGeneric.cs b/AirBomber/AirBomber/SetGeneric.cs
index b1b0f54..1188285 100644
--- a/AirBomber/AirBomber/SetGeneric.cs
+++ b/AirBomber/AirBomber/SetGeneric.cs
@@ -12,18 +12,23 @@ namespace AirBomber
///
/// Массив объектов, которые храним
///
- private readonly T?[] _places;
+ private readonly List _places;
///
/// Количество объектов в массиве
///
- public int Count => _places.Length;
+ public int Count => _places.Count;
+ ///
+ /// Максимальное количество объектов в списке
+ ///
+ private readonly int _maxCount;
///
/// Конструктор
///
///
public SetGeneric(int count)
{
- _places = new T?[count];
+ _maxCount = count;
+ _places = new List(count);
}
///
/// Добавление объекта в набор
@@ -96,15 +101,38 @@ namespace AirBomber
///
///
///
- public T? Get(int position)
+ public T? this[int position]
{
- // TODO проверка позиции DONE
- if (position < 0 || position >= Count)
+ get
{
- return null;
+ // TODO проверка позиции DONE
+ if (position < 0 || position >= Count)
+ {
+ return null;
+ }
+ return _places[position];
+ }
+ set
+ {
+ // TODO проверка позиции
+ // TODO проверка свободных мест в списке
+ // TODO вставка в список по позиции
+ }
+ }
+ ///
+ /// Проход по списку
+ ///
+ ///
+ public IEnumerable GetCars(int? maxCars = null)
+ {
+ for (int i = 0; i < _places.Count; ++i)
+ {
+ yield return _places[i];
+ if (maxCars.HasValue && i == maxCars.Value)
+ {
+ yield break;
+ }
}
- return _places[position];
}
-
}
}