C# как сортировать продукты питания
У меня есть класс Food,поля которого-это имя, категория,цена и функция toString.
Я создал массив еды в основном.например`
Food[] f = new Food[5] { new Food("Apple","Fruit",200), new Food("Orange","Fruit",600), new Food("Tomato","Vegetable",100), new Food("Pork","Meat",2000), new Food("Rice","Grain",400) };
Затем в консоли просят нажать 1,2 или 3.если я нажму 1, он будет сортировать мой массив по имени,если я нажму 2, он будет сортировать мой массив по категории, А если я нажму 3, он будет сортировать мой массив по цене.Например я нажал 3 он будет выглядеть так`
new Food("Tomato","Vegetable",100), new Food("Apple","Fruit",200), new Food("Rice","Grain",400), new Food("Orange","Fruit",600), new Food("Pork","Meat",2000),
После сортировки опрос выполняется снова՝ с помощью цикла While
Что я уже пробовал:
class Food { public string name; public string category; public int price; public Food(string a,string b,int c) { this.name = a; this.category = b; this.price = c; } public string toString() { return this.name + " " + this.category + " " + this.price; } } class Sorting : IComparer<food> { public int Compare(Food x, Food y) { double d1 = x.price; double d2 = y.price; return d1 > d2 ? 1 : -1; //For double string s1 = x.name; string s2 = y.name; return String.Compare(x.name,y.name); // For string } } static void Main(string[] args) { Food[] f = new Food[5] { new Food("Apple","Fruit",200), new Food("Orange","Fruit",600), new Food("Tomato","Vegetable",100), new Food("Pork","Meat",2000), new Food("Rice","Grain",400) }; foreach (Food item in f) { Console.WriteLine(item.toString()); } int x; while (true) { Console.WriteLine("\n\n 1.According to name\n 2.According to category \n 3.According to price"); Console.Write("\n Enter your choice: "); x = int.Parse(Console.ReadLine()); Array.Sort(f, new Sorting()); foreach (Food item in f) { Console.WriteLine(item.toString()); } } }
F-ES Sitecore
В чем же вопрос?
Suren97
он не работает, когда я нажимаю 1, он сортируется по цене, когда я нажимаю 2, 3 или 4 и так далее, он снова сортируется по цене.
Suren97
Мне нужно, когда я нажму 1,он будет сортировать мой массив по имени, если я нажму 2, он будет сортировать мой массив по категории, А если я нажму 3, он будет сортировать мой массив по цене. И когда я нажму больше 3 он покажет ошибку