using System;
using System.Collections;
using System.Collections.Generic;
namespace BikeFinal
{
class Bike : IComparable<Bike>
{
private string Name { get; set; }
private string Producer { get; set; }
private double Price { get; set; }
public Bike() { }
public Bike(string name, string producer, double price)
{
Name = name;
Producer = producer;
Price = price;
}
public override string ToString()
{
return $"name={Name} producer={Producer} price={Price}";
}
public int CompareTo(Bike other)
{
return other.Price.CompareTo(Price);
}
}
//далее классы, наследники от Bike(Monatin, ElectroBike, Urban, Crosscountry), которые я вырезал из за ненадобности
abstract class Container
{
public virtual void Add(Bike b) { }
public virtual void Remove(int index) { }
public virtual void Remove(Bike b) { }
public virtual void Sort() { }
}
class ArrayListContainer : Container
{
//private System.Collections.Generic.List<Bike> arrayList = new List<Bike>();
private ArrayList arrayList = new ArrayList();
public ArrayListContainer()
{
}
public override void Add(Bike b)
{
arrayList.Add(b);
}
public override void Remove(Bike b)
{
if (arrayList.Contains(b))
arrayList.Remove(arrayList.IndexOf(b));
}
public override void Remove(int index)
{
if (index < arrayList.Count)
arrayList.RemoveAt(index);
}
public override void Sort()
{
arrayList.Sort();
}
public override string ToString()
{
string res = "ArrayListContainer";
foreach (Bike b in arrayList)
{
res += "\n\t" + b.ToString();
}
return res;
}
}
class Program
{
static void Main(string[] args)
{
ArrayListContainer bikes = new ArrayListContainer();
bikes.Add(new Bike("xf14", "Cannondale", 14.0d));
bikes.Add(new Bike("gf43", "Cannondale", 17.7d));
bikes.Add(new Bike("vsd", "Cannondale", 13.4d));
Console.WriteLine(bikes);
bikes.Sort();
Console.ReadLine();
}
}
}
В результате чего не сортируется лист велосипедов по цене. Выбрасывается ошибка
Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll
Дополнительные сведения: Сбой при сравнении двух элементов массива.
using System;
using System.Collections.Generic;
namespace BikeFinal
{
class Bike : IComparable<Bike>
{
private string Name { get; set; }
private string Producer { get; set; }
private double Price { get; set; }
public Bike() { }
public Bike(string name, string producer, double price)
{
Name = name;
Producer = producer;
Price = price;
}
public override string ToString()
{
return $"name={Name} producer={Producer} price={Price}";
}
public int CompareTo(Bike other)
{
return other.Price.CompareTo(Price);
}
}
abstract class Container
{
public virtual void Add(Bike b) { }
public virtual void Remove(int index) { }
public virtual void Remove(Bike b) { }
public virtual void Sort() { }
}
class ArrayListContainer : Container
{
private List<Bike> arrayList = new List<Bike>();
public ArrayListContainer()
{
}
public override void Add(Bike b)
{
arrayList.Add(b);
}
public override void Remove(Bike b)
{
if (arrayList.Contains(b))
arrayList.Remove(b);
}
public override void Remove(int index)
{
if (index < arrayList.Count)
arrayList.RemoveAt(index);
}
public override void Sort()
{
arrayList.Sort();
}
public override string ToString()
{
string res = "ArrayListContainer";
foreach (Bike b in arrayList)
{
res += "\n\t" + b.ToString();
}
return res;
}
}
class Program
{
static void Main(string[] args)
{
ArrayListContainer bikes = new ArrayListContainer();
bikes.Add(new Bike("xf14", "Cannondale", 14.0d));
bikes.Add(new Bike("gf43", "Cannondale", 17.7d));
bikes.Add(new Bike("vsd", "Cannondale", 13.4d));
Console.WriteLine(bikes);
bikes.Sort();
Console.WriteLine(bikes);
Console.ReadLine();
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Работаю с XamarinСоздал переносимую библиотеку классов, добавил веб-сервис, после чего оказалось что некоторые функции самого сервиса отсутствуют
Программа сканирует все get запросы пользователя, с помощью прокси Titanium Web Proxy, и если она обнаружит,что пользователь пытается зайти на веб-страницу,...
Подскажите пожалуйста, как можно открывать архивы через внешнее приложение(explorer или всякие архиваторы)? Пробовал через ProcessStart , но почему...