using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Prac8 { public class GymEquipment : IComparable, IEquatable { public int Number { get; set; } public string Name { get; set; } public string Type { get; set; } public string Condition { get; set; } public string Place { get; set; } public GymEquipment() { Name = string.Empty; Type = string.Empty; Condition = string.Empty; Place = string.Empty; } public GymEquipment(int number, string name, string type, string condition, string place) { Number = number; Name = name; Type = type; Condition = condition; Place = place; } public int CompareTo(GymEquipment other) { if (other == null) { return 1; } int byName = string.Compare(Name, other.Name, StringComparison.OrdinalIgnoreCase); if (byName != 0) { return byName; } return Number.CompareTo(other.Number); } public bool Equals(GymEquipment other) { if (other == null) { return false; } return Number == other.Number && string.Equals(Name, other.Name, StringComparison.OrdinalIgnoreCase) && string.Equals(Type, other.Type, StringComparison.OrdinalIgnoreCase) && string.Equals(Condition, other.Condition, StringComparison.OrdinalIgnoreCase) && string.Equals(Place, other.Place, StringComparison.OrdinalIgnoreCase); } public override bool Equals(object obj) { return Equals(obj as GymEquipment); } public override int GetHashCode() { return GetSafeHash(Name) ^ GetSafeHash(Type) ^ GetSafeHash(Condition) ^ GetSafeHash(Place) ^ Number; } private static int GetSafeHash(string value) { return value == null ? 0 : value.ToLowerInvariant().GetHashCode(); } public override string ToString() { return $"№: {Number}, Название: {Name}, Тип: {Type}, Состояние: {Condition}, Место: {Place}"; } } }