Сортировка в List<>

162
21 марта 2019, 09:10

Как отсортировать элементы списка по возрастанию цены? Были попытки сделать это через оператор orderby, но в таком случае просто сортирует одни цены, без остальных полей.

public class Game // Класс для работы с данными
{
    public struct Product
    {
        public string Name; // Название
        public double Price; // Цена
        public string Developer; // Разработчик
        public Product(string Name, double Price, string Developer) // Конструктор
        {
            this.Name = Name;
            this.Price = Price;
            this.Developer = Developer;
        }
    }
    public List<Product> Conf = new List<Product>();
    public void Print(ref List<Product> Conf) // Хранение элементов
    {
        Conf.Add(new Product("Darkest Dungeon", 389, "Red Hook"));
        Conf.Add(new Product("Death's Gambit", 419, "White Rabbit"));
        Conf.Add(new Product("Doom", 799, "Id Software"));
        Conf.Add(new Product("The Evil Within", 649, "Bethesda"));
        Conf.Add(new Product("The Little Nightmares", 599, "Bandai Namco"));
    }
    // Добавление продукта
    public static void Input(out string a, out string b, ref int c)...
    // Изменение данных о продукте
    public void IzmDan(ref List<Product> Conf)...
    // Удаление продукта
    public void Delete(ref List<Product> Conf)...
    // Добавление в список
    public void Adding(string Name, double Price, string Developer)
    {
        Product a = new Product();
        a.Name = Name;
        a.Price = Price;
        a.Developer = Developer;
        Conf.Add(a);
    }
    // Сортировка
    public void Sort(ref List<Product> Conf)
    {
        int number = 0;
        bool flag = false;
        string temp;
        Console.WriteLine("Сортировать по: \n 1) Возрастанию цены\n 2) Убыванию цены\n 3) Выход");
        temp = Console.ReadLine();
        switch(number)
        {
            case 1:
                break;
            case 2:
                break;
            case 3:
                flag = true;
                break;
            default:
                break;
        }
    }
}
class Program
{
    static void Main(string[] args)
    {
        string temp;
        string a, b;
        int c = 0, num;
        Game q = new Game();// Экземпляр класса 
        q.Print(ref q.Conf); // Заполнение по умолчанию
        bool flag = true;
        while (flag)
        {
            Console.WriteLine();
            Console.WriteLine(" Наименование продукта  |  Цена  |  Разработчик    \n\n");
            foreach (Game.Product z in q.Conf)
            {
                Console.WriteLine(" {0}  |  {1}  |  {2}\n", z.Name, z.Price, z.Developer);
            }
            // Вывод элементов
            Console.WriteLine();
            Console.WriteLine(" 1) Добавить продукт\n 2) Изменить продукт\n 3) Удалить продукт\n 4) Сортировка\n 5) Выход");
            temp = Console.ReadLine();
            if (int.TryParse(temp, out num))
            {
                switch (num)// Оператор выбора
                {
                    case 1:
                        Game.Input(out a, out b, ref c);
                        q.Adding(a, c, b); // Добавление
                        break;
                    case 2:
                        q.IzmDan(ref q.Conf); // Изменение
                        break;
                    case 3:
                        q.Delete(ref q.Conf); // Удалить
                        break;
                    case 4:
                        q.Sort(ref q.Conf); // Сортировка
                        break;
                    case 5:
                        flag = false;
                        break;
                    default:
                        Console.WriteLine("Ошибка ввода");
                        break;
                }
            }
        }
    }
}
READ ALSO
Ошибка	XDG0008	Имя &ldquo;MainVM&rdquo; не существует в пространстве имен &ldquo;clr-namespace:StepByStepServer.ViewModels&rdquo;

Ошибка XDG0008 Имя “MainVM” не существует в пространстве имен “clr-namespace:StepByStepServer.ViewModels”

Не могу понять в чем проблемаMainVM существует в StepByStepServer

150
Отслеживание подключение - отключение USB Mono C#

Отслеживание подключение - отключение USB Mono C#

Необходимо отслеживать подключение, отключение USB-COM переходника (FTDI или других)В Windows это сделать не проблема (через тот же WMI), а каким инструментом...

116
Работа с датой в PHP и MySQL [закрыт]

Работа с датой в PHP и MySQL [закрыт]

Задача: Сделать так чтобы каждый месяц 1 числа в БД записывалось какое-то значениеЕсть идеи как это реализовать?

132
Вывести график на cтраницах которые отображаю с помощью виджета GoogleCharts

Вывести график на cтраницах которые отображаю с помощью виджета GoogleCharts

Столкнулся с проблемой GoogleChartsЯ хочу вывести график на cтраницах которые отображаю с помощью виджета

164