Обеспечить вывод всех ПК, удовлетворяющих запросу и отсортировать их по любому параметру - 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); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д