Создать структуру «Мотоцикл» - C#
Формулировка задачи:
Доброго времени суток.
Помогите, пожалуйста, с решением задачи:
"Требуется создать структуру «Мотоцикл», определить в нем поля: марка, модель, объем двигателя, цена. Определить метод GetInfo (или переопределить ToString), возвращающий характеристики мотоцикла.
Используя интерфейс IСomparer, требуется реализовать возможность сортировки списка «Мотоциклов» по каждому из полей.
В оконном приложении нужно задать (жестко в коде программы) список из нескольких мотоциклов (не меньше 5), затем вывести на форму в два различных текстовых поля или ListBox-а этот список, отсортированный в первом поле – по цене по убыванию, во втором – по марке в прямом алфавитном порядке(a-z)".
Решение задачи: «Создать структуру «Мотоцикл»»
textual
Листинг программы
class Program { static void Main(string[] args) { var motosSource = new [] { new Moto { EngineVolume = 12, Mark = "z", Model = "model1", Price = 250000 }, new Moto { EngineVolume = 14, Mark = "a", Model = "model2", Price = 350000 }, new Moto { EngineVolume = 7, Mark = "c", Model = "model3", Price = 150000 }, new Moto { EngineVolume = 9, Mark = "b", Model = "model4", Price = 200000 }, new Moto { EngineVolume = 9, Mark = "b", Model = "model5", Price = 100000 }, }; var sortedByPrice = motosSource.ToArray(); Array.Sort(sortedByPrice, new MotoInversePriceComparer()); var sortedByMark = motosSource.ToArray(); Array.Sort(sortedByMark, new MotoMarkComparer()); foreach (var moto in sortedByPrice) Console.WriteLine(moto); Console.WriteLine(); foreach (var moto in sortedByMark) Console.WriteLine(moto); Console.ReadLine(); } } public struct Moto { public string Mark { get; set; } public string Model { get; set; } public decimal EngineVolume { get; set; } public decimal Price { get; set; } public override string ToString() { return $"Mark: {Mark}, Model: {Model}, EngineVolume: {EngineVolume}, Price: {Price}"; } } public class MotoInversePriceComparer : IComparer<Moto> { public int Compare(Moto x, Moto y) { return y.Price.CompareTo(x.Price); } } public class MotoMarkComparer : IComparer<Moto> { public int Compare(Moto x, Moto y) { return String.Compare(x.Mark, y.Mark, StringComparison.Ordinal); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д