Добавлен DrawningLinerEqutables
This commit is contained in:
parent
392189d5b2
commit
50755f3d53
@ -21,16 +21,18 @@
|
||||
/// Добавление объекта в коллекцию
|
||||
/// </summary>
|
||||
/// <param name="obj">Добавляемый объект</param>
|
||||
/// /// <param name="comparer">Сравнение двух объектов</param>
|
||||
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
||||
int Insert(T obj);
|
||||
int Insert(T obj, IEqualityComparer<T?>? comparer = null);
|
||||
|
||||
/// <summary>
|
||||
/// Добавление объекта в коллекцию на конкретную позицию
|
||||
/// </summary>
|
||||
/// <param name="obj">Добавляемый объект</param>
|
||||
/// <param name="position">Позиция</param>
|
||||
/// /// <param name="comparer">Сравнение двух объектов</param>
|
||||
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
||||
int Insert(T obj, int position);
|
||||
int Insert(T obj, int position, IEqualityComparer<T?>? comparer = null);
|
||||
|
||||
/// <summary>
|
||||
/// Удаление объекта из коллекции с конкретной позиции
|
||||
@ -56,5 +58,11 @@
|
||||
/// </summary>
|
||||
/// <returns>Поэлементый вывод элементов коллекции</returns>
|
||||
IEnumerable<T?> GetItems();
|
||||
|
||||
/// <summary>
|
||||
/// Сортировка коллекции
|
||||
/// </summary>
|
||||
/// <param name="comparer"></param>
|
||||
void CollectionSort(IComparer<T?> comparer);
|
||||
}
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
using ProjectLiner.Drawnings;
|
||||
using ProjectLiner.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
/// <summary>
|
||||
/// Реализация сравнения двух объектов класса-прорисовки
|
||||
/// </summary>
|
||||
public class DrawningLinerEqutables : IEqualityComparer<DrawningCommonLiner?>
|
||||
{
|
||||
public bool Equals(DrawningCommonLiner x, DrawningCommonLiner? y)
|
||||
{
|
||||
if (x == null || x.EntityCommonLiner == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (y == null || y.EntityCommonLiner == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (x.GetType().Name != y.GetType().Name)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (x.EntityCommonLiner.Speed != y.EntityCommonLiner.Speed)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (x.EntityCommonLiner.Weight != y.EntityCommonLiner.Weight)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (x.EntityCommonLiner.BodyColor != y.EntityCommonLiner.BodyColor)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (x is DrawningLiner && y is DrawningLiner)
|
||||
{
|
||||
if (((EntityLiner)x.EntityCommonLiner).AdditionalColor !=
|
||||
((EntityLiner)y.EntityCommonLiner).AdditionalColor)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (((EntityLiner)x.EntityCommonLiner).Boats !=
|
||||
((EntityLiner)y.EntityCommonLiner).Boats)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (((EntityLiner)x.EntityCommonLiner).Anchor !=
|
||||
((EntityLiner)y.EntityCommonLiner).Anchor)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (((EntityLiner)x.EntityCommonLiner).Pipe !=
|
||||
((EntityLiner)y.EntityCommonLiner).Pipe)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public int GetHashCode([DisallowNull] DrawningCommonLiner obj)
|
||||
{
|
||||
return obj.GetHashCode();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user