Technology Experience
.NET World

Piccole istruzioni Linq per semplificare un po’ il codice

Supponiamo l’esistenza di una classe Player che tra le altre proprietà ne esponga una di tipo intero denominata Strength.

Supponiamo l’esistenza di una classe Team che tra le altre proprietà ne esponga una di tipo List<Player> denominata AcquiredPlayers.

Supponiamo l’esistenza di una classe Match che calcola l’incontro tra due Team diversi e ne calcola l’esito.

Un match viene vinto dal Team che raggiunge il punteggio più alto.
Tale punteggio è la somma dei valori della proprietà Strength dei giocatori appartenenti ad un Team (semplificando, chiaramente).
Es: l’istanza team1 ha acquisito 3 Players. Il primo ha Strength = 20, il secondo 45 ed il terzo = 56. Team1 ottiene un punteggio pari a 121. Per vincere un match, l’altro team deve ottenere un punteggio maggiore di 121.

Dopo questo piccolo preambolo per illustrare lo scenario, passiamo a qualcosa di tecnico e di divertente.

Come ottenere con una sola riga di C#, sfruttando Linq, il punteggio totalizzato da un team? Così:

int ScoreTeam1 = base._playersTeam1.Sum(s => s.Player.Strength);

Semplice da leggere, efficiente e molto compatto. Se c’è una cosa bella di Linq, così come qualsiasi altra tecnologia ben congegnata, è che essa può essere sfruttata fin da subito, in progetti già avviati ed in produzione, senza bisogno di grossi stravolgimenti alla nostra applicazione o agli strumenti di sviluppo. L’unica cosa richiesta è la compilazione con il .NET Framework 3.5 ed un referenziamento all’assembly System.Core.dll.

Technorati Tags:   

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.