Обеспечить вывод всех ПК, удовлетворяющих запросу и отсортировать их по любому параметру - C#

Узнай цену своей работы

Формулировка задачи:

Прошу помочь, если нетрудно, просто опыт программирования очень маленький. Задание такое: В файле хранится следующая информация: названия ПК (модель), их производительность, год выпуска и цена. По запросу пользователя обеспечить вывод всех ПК, удовлетворяющих запросу и от-сортировать их по любому параметру. Запрос может быть как по одному, так и по нескольким параметрам. Вот, что смог написать(но программа не работает нормально).Не пойму, что не так делаю.В общем, помогите пожалуйста,подкорректируйте,если нетрудно, буду благодарен.
class Program
    
{
    class Computer
    {
        public string Model;
        public decimal Perfomance;
        public decimal GraduationYear;
        public decimal Cost;
        public Computer(string model, decimal perfomance, decimal graduationyear, decimal cost)
        {
            this.Model = model;
            this.Perfomance = perfomance;
            this.GraduationYear = graduationyear;
            this.Cost = cost;
            
        }
 
        public override string ToString()
        {
            return string.Format("Model: {0}, Perfomance: {1}, GraduationYear: {2}, Cost: {1:C}", this.Model, this.Perfomance, this.GraduationYear, this.Cost);
        }
    }
 
    static void Main()
    {
        StreamReader file = new StreamReader("computers.txt");
        List<Computer> computers = new List<Computer>();
 
        string line;
        while ((line = file.ReadLine()) != null)
        {
            string[] parameters = line.Split(';');
            computers.Add(new Computer(parameters[0], decimal.Parse(parameters[1]), decimal.Parse(parameters[2]), decimal.Parse(parameters[4])));
        }
        file.Close();
 
        //выборка компьютеров стоимостью свыше 1500р и упорядочение по модели по убыванию
        var query = from comp in computers
                    where comp.Cost > 1500
                    orderby comp.Model descending
                    select comp;
 
        foreach (Computer c in query)
            Console.WriteLine(c);
    }
}
 
        }
Просто, я не могу понять, на других примерах, поэтому прошу реальной помощи, на практике, т.е конкретно по тому, что у меня есть, показать где ,что не так

Решение задачи: «Обеспечить вывод всех ПК, удовлетворяющих запросу и отсортировать их по любому параметру»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
 
namespace ConsoleApplication1
{
    internal class Program
    {
        private static void Main()
        {
 
            var computers = new List<Computer>();
            using (var file = new StreamReader("computers.txt"))
            {
 
                while (!file.EndOfStream)
                {
                    var line = file.ReadLine();
                    var parameters = line.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                    computers.Add(new Computer(parameters[0], int.Parse(parameters[1]), parameters[2],
                        decimal.Parse(parameters[3])));
                }
            }
 
 
 
 
            var query = computers.AsQueryable();
            var model = "intel 8086";
            int perfomance = 21312;
 
            if (!string.IsNullOrEmpty(model))
            {
                query = query.Where(i => i.Model == model);
            }
            if (perfomance != 0)
            {
                query = query.Where(i => i.Perfomance == perfomance);
            }
 
 
            foreach (var c in query.ToList())
            {
                Console.WriteLine(c.ToString());
            }
            Console.ReadKey();
        }
    }
 
    class Computer
    {
        public string Model;
        public int Perfomance;
        public string GraduationYear;
        public decimal Cost;
        public Computer(string model, int perfomance, string graduationyear, decimal cost)
        {
            Model = model;
            Perfomance = perfomance;
            GraduationYear = graduationyear;
            Cost = cost;
 
        }
 
        public override string ToString()
        {
            return string.Format("Model: {0}, Perfomance: {1}, GraduationYear: {2}, Cost: {3:C}", this.Model, this.Perfomance, this.GraduationYear, this.Cost);
        }
    }
 
 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы