Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace BookLibrary
- {
- class Program
- {
- static void Main(string[] args)
- {
- int n = int.Parse(Console.ReadLine());
- Library lib = new Library();
- //Името не е задължително, класа Library е само организационна единица, която замества List<Books>.
- lib.Name = "bookStorage";
- //На 30 ред гърмеше, защото се опитваш да правиш някакви неща с речник, а той не съществува.
- //Аз го промених с лист, но процедурата е същата, трябва да си го създадеш.
- lib.books = new List<Books>();
- for (int i = 0; i < n; i++)
- {
- List<string> info = Console.ReadLine().Split(' ').ToList();
- string title = info[0];
- string author = info[1];
- //Промяната от '.' на ',' на мен ми чупи изхода, затова го премахнах
- //Ако имаш проблем с разделителя на десетичните числа си промени регионалните настройки.
- decimal price = decimal.Parse(info[5]);
- //Проверявам дали в листа същестува такъв автор и ако не съществува, създаваме.
- if (!lib.books.Any(a => a.Author == author))
- {
- Books newBook = new Books();
- newBook.Author = author;
- newBook.Price = price;
- lib.books.Add(newBook);
- }
- //Ако вече има такъв автор го намираме и му добаваме "price";
- else
- {
- Books toUpgrade = lib.books.First(a => a.Author == author);
- toUpgrade.Price += price;
- }
- }
- //Принтирам подредено по изискванията.
- foreach (Books book in lib.books
- .OrderByDescending(p => p.Price)
- .ThenBy(a => a.Author))
- {
- Console.WriteLine($"{book.Author} -> {book.Price:f2}");
- }
- }
- }
- }
- class Library
- {
- public string Name { get; set; }
- //Не е нужно да се пазят в дикшънари, един лист ти върши перфектна работа.
- public List<Books> books { get; set; }
- }
- class Books
- {
- //За задачата е достатъчно да държиш само автор и име.
- public string Author { get; set; }
- public decimal Price { get; set; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement