Реализована логика в классе SetGeneric
This commit is contained in:
parent
3c728ee2e1
commit
5287002a6f
@ -37,6 +37,7 @@
|
||||
buttonCreatePlane = new Button();
|
||||
comboBoxStrategy = new ComboBox();
|
||||
buttonStep = new Button();
|
||||
buttonSelectPlane = new Button();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBoxStormtrooper).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
@ -140,11 +141,22 @@
|
||||
buttonStep.UseVisualStyleBackColor = true;
|
||||
buttonStep.Click += buttonStep_Click;
|
||||
//
|
||||
// buttonSelectPlane
|
||||
//
|
||||
buttonSelectPlane.Location = new Point(537, 412);
|
||||
buttonSelectPlane.Name = "buttonSelectPlane";
|
||||
buttonSelectPlane.Size = new Size(137, 29);
|
||||
buttonSelectPlane.TabIndex = 9;
|
||||
buttonSelectPlane.Text = "Выбрать";
|
||||
buttonSelectPlane.UseVisualStyleBackColor = true;
|
||||
buttonSelectPlane.Click += ButtonSelectPlane_Click;
|
||||
//
|
||||
// FormStormtrooper
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(8F, 20F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(882, 453);
|
||||
Controls.Add(buttonSelectPlane);
|
||||
Controls.Add(buttonStep);
|
||||
Controls.Add(comboBoxStrategy);
|
||||
Controls.Add(buttonCreatePlane);
|
||||
@ -173,5 +185,6 @@
|
||||
private Button buttonCreatePlane;
|
||||
private ComboBox comboBoxStrategy;
|
||||
private Button buttonStep;
|
||||
private Button buttonSelectPlane;
|
||||
}
|
||||
}
|
@ -34,8 +34,7 @@ namespace ProjectStormtrooper
|
||||
/// <returns></returns>
|
||||
public bool Insert(T plane)
|
||||
{
|
||||
// TODO: вставка в начало набора
|
||||
return true;
|
||||
return Insert(plane, 0);
|
||||
}
|
||||
/// <summary>
|
||||
/// Добавление объекта в набор на конкретную позицию
|
||||
@ -45,11 +44,38 @@ namespace ProjectStormtrooper
|
||||
/// <returns></returns>
|
||||
public bool Insert(T plane, int position)
|
||||
{
|
||||
// TODO проверка позиции
|
||||
// TODO проверка, что элемент массива по этой позиции пустой, если нет, то
|
||||
// проверка, что после вставляемого элемента в массиве есть пустой элемент
|
||||
// сдвиг всех объектов, находящихся справа от позиции до первого пустого элемента
|
||||
// TODO вставка по позиции
|
||||
// Проверка позиции
|
||||
if (position < 0 || position > Count - 1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// Проверка, что элемент массива по этой позиции пустой
|
||||
if (_places[position] != null)
|
||||
{
|
||||
// Проверка, что после вставляемого элемента в массиве есть пустой элемент
|
||||
int nullIndex = -1;
|
||||
for (int i = position + 1; i < Count; i++)
|
||||
{
|
||||
if (_places[i] == null)
|
||||
{
|
||||
nullIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Если пустого элемента нет, то выходим
|
||||
if (nullIndex < 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// Сдвиг всех объектов, находящихся справа от позиции до первого пустого элемента
|
||||
int i = nullIndex - 1;
|
||||
while (i >= position)
|
||||
{
|
||||
_places[i + 1] = _places[i];
|
||||
i--;
|
||||
}
|
||||
}
|
||||
// Вставка по позиции
|
||||
_places[position] = plane;
|
||||
return true;
|
||||
}
|
||||
@ -60,8 +86,18 @@ namespace ProjectStormtrooper
|
||||
/// <returns></returns>
|
||||
public bool Remove(int position)
|
||||
{
|
||||
// TODO проверка позиции
|
||||
// TODO удаление объекта из массива, присвоив элементу массива значение null
|
||||
// Проверка позиции
|
||||
if (position < 0 || position > Count - 1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// Нельзя удалить пустой элемент
|
||||
if (_places[position] == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// Удаление объекта из массива, присвоив элементу массива значение null
|
||||
_places[position] = null;
|
||||
return true;
|
||||
}
|
||||
/// <summary>
|
||||
@ -71,7 +107,11 @@ namespace ProjectStormtrooper
|
||||
/// <returns></returns>
|
||||
public T? Get(int position)
|
||||
{
|
||||
// TODO проверка позиции
|
||||
// Проверка позиции
|
||||
if (position < 0 || position > Count - 1)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _places[position];
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user