Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Ordonarea unei colectii cu LINQ

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

Your email address will not be published. Required fields are marked *

*