Contenuti

LINQ GroupBy: Risultati della Query raggruppati

In questo breve HowTo voglio mostrare come effettuare una GroupBy in LINQ. Per farlo prenderò spunto da una classe modificata di recente per un lavoro dove data una lista di utenti dovevo creare la lista divisa per la prima lettera del cognome. Il codice riportato di seguito è molto semplificato rispetto quello di partenza, ma l’idea di base resta sempre la stessa.

LINQ GroupBy: Codice di Esempio

Se sei in dubbio sul funzionamento di “linq group by” il seguente codice può essere una buona base di partenza per il tuo lavoro. Nel mio caso specifco non avevo “this._friends” a disposizione, ma una lista di “User” ed ognuno di esso esponeva la proprietà “LastName”. LINQ & GroupBy

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;

namespace DevAndreaCarrattaIT
{
    public class LinqGroupByFirstLetter
    {


        private List<string> _friends { get; set; }

        public LinqGroupByFirstLetter()
        {
            this._friends = new List<string>(){
                "Rachel Green",
                "Monica Geller",
                "Phoebe Buffay",
                "Joey Tribbiani",
                "Chandler Bing",
                "Ross Geller"
            };
        }

        public void Run()
        {

            var result = this._friends
                .OrderBy(x => x)
                .Select(x => x)
                .GroupBy(x => x.Substring(0, 1));



        }

    }
}

Come potete notare è davvero molto semplice quanto potente l’utilizzo di LINQ per queste situazioni.