Intr-un articol anterior am interogat o colectie cu LINQ. Presupunem ca in acest scenariu este nevoie de organizarea rezultatului intr-o anumita ordine.
Vom folosi instructiunea orderby petnru a sorta elementele (cartile, in exemplul nostru) in ordinea descrescatoare a anului aparitiei.
List<Book> myBooks = new List<Book>();
myBooks.Add(new Book("Eseu despre orbire", 1, 1995));
myBooks.Add(new Book("Pedepsele", 2, 1853));
myBooks.Add(new Book("Mizerabilii", 2, 1862));
var ordered = from book in myBooks
orderby book.Year descending
select book;
foreach (Book b in ordered)
{
Console.WriteLine(String.Format("{0}/{1}",b.Title, b.Year));
}
Rezultatul va fi:
Eseu despre orbire/1995
Mizerabilii/1862
Pedepsele/1852
Daca nu se precizeasca ordinea, ascending va fi implicit.
Voi mai adauga la colectie o carte a unui alt autor, anul aparitiei fiind unul deja in colectie. Vreau apoi sa ordonez descrescator dupa anul aparitiei, iar in cadrul aceluiasi an sa am o ordonare alfabetica dupa titlu.
authors.Add(new Author(3, "Prenume", "Nume"));
myBooks.Add(new Book("1", 3, 1862));
var ordered = from book in myBooks
orderby book.Year descending, book.Title
select book;
Rezultatul va fi:
Eseu despre orbire/1995
Abastru/1862
Mizerabilii/1862
Pedepsele/1852
Category: Uncategorized