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