using System.Collections.Generic;
public int Id {get; set;}
public string Name {get; set;}
public decimal Price {get; set;}
public static void Main()
List<(decimal Category, List<Book> Books)> groupedBooks = books
.GroupBy(book => Math.Ceiling(book.Price / 10) * 10,
(category, booksInCategory) => (
Books: booksInCategory.ToList() ))
.OrderBy(gr => gr.Category)
foreach (var gr in groupedBooks)
Console.WriteLine($"Category: {gr.Category}");
foreach (var book in gr.Books)
Console.WriteLine($"\tBook: {{ Id: {book.Id}\tName: {book.Name}\tPrice: {book.Price} }}");