Compare commits

..

No commits in common. "74c7268d4fefcf0e83a75dde4ffb854952a8f43c" and "92a8dc27f730b14fa006108b5f99b8cff784595d" have entirely different histories.

3 changed files with 48 additions and 69 deletions

View File

@ -1,8 +1,11 @@
using HoistingCrane.Drawning;
using HoistingCrane.Exceptions;
using System;
using System.CodeDom.Compiler;
using System.Windows.Forms.VisualStyles;
namespace HoistingCrane.CollectionGenericObjects;
public class ListGenericObjects<T> : ICollectionGenericObjects<T> where T : class
public class ListGenericObjects<T> : ICollectionGenericObjects<T>
where T : class
{
/// <summary>
/// Список объектов, которые храним
@ -63,25 +66,39 @@ public class ListGenericObjects<T> : ICollectionGenericObjects<T> where T : clas
return Count;
}
public T? Remove(int position)
public int Insert(T obj, int position)
{
if (position < 0 || position >= list.Count) throw new PositionOutOfCollectionException(position);
T? temp = list[position];
list.RemoveAt(position);
return temp;
// Проверка, что не превышено максимальное количество элементов
if (Count == _maxCount)
{
return -1;
}
// Проверка позиции
if (position >= Count || position < 0)
{
return -1;
}
_collection.Insert(position, obj);
return position;
}
public IEnumerable<T?> GetItems()
public T? Remove(int position)
{
// Проверка позиции
if (position >= Count || position < 0)
{
for(int i = 0; i < list.Count; i++)
{
yield return list[i];
}
return null;
}
T? obj = _collection[position];
_collection.RemoveAt(position);
return obj;
}
public void CollectionSort(IComparer<T> comparer)
public IEnumerable<T?> GetItems()
{
for (int i = 0; i < Count; ++i)
{
list.Sort(comparer);
yield return _collection[i];
}
}
}

View File

@ -3,15 +3,13 @@
public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
where T : class
{
private T?[] arr;
public MassivGenericObjects()
{
arr = Array.Empty<T?>();
}
public int Count
{
get { return arr.Length; }
}
/// <summary>
/// Массив объектов, которые храним
/// </summary>
private T?[] _collection;
public int Count => _collection.Length;
public int MaxCount
{
get
@ -33,52 +31,16 @@ where T : class
}
}
}
if (arr[i] == null)
{
arr[i] = obj;
return i;
}
}
}
}
throw new CollectionOverflowException(Count);
}
catch (PositionOutOfCollectionException ex)
{
MessageBox.Show(ex.Message);
return -1;
}
catch (ObjectIsPresentInTheCollectionException ex)
{
MessageBox.Show(ex.Message);
return -1;
}
}
}
public T? Remove(int position)
{
if (position < 0 || position >= Count) throw new PositionOutOfCollectionException(position);
if (arr[position] == null) throw new ObjectNotFoundException(position);
T? temp = arr[position];
arr[position] = null;
return temp;
}
public CollectionType GetCollectionType => CollectionType.Massive;
public IEnumerable<T?> GetItems()
{
for (int i = 0; i < arr.Length; i++)
{
yield return arr[i];
=========
>>>>>>>>> Temporary merge branch 2
}
}
public void CollectionSort(IComparer<T> comparer)
{
T[] notNullArr = arr.OfType<T>().ToArray();
Array.Sort(notNullArr, comparer);
Array.Copy(notNullArr, 0, arr, 0, notNullArr.Length);
}
/// <summary>
/// Конструктор
/// </summary>
public MassiveGenericObjects()
{
_collection = Array.Empty<T?>();
}
public T? Get(int position)