Linguaggi di programmazione

Caratteristiche funzionali in C#

Un semplice esempio, sebbene volutamente semplificato, vale più di molte parole:

// A list of numbers
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Functional programming with LINQ
var evenSquares = numbers
    .Where(n => n % 2 == 0)       // Filter: Keep only even numbers
    .Select(n => n * n)           // Transform: Square each number
    .ToList();                    // Convert the result to a list

// Output the result
Console.WriteLine("Even squares:");
evenSquares.ForEach(Console.WriteLine);

// Aggregate: Sum of even squares
int sum = evenSquares.Sum();
Console.WriteLine($"Sum of even squares: {sum}");

Nell'esempio sono concentrate varie funzioni tra quelle che si possono applicare a una collezione di dati (nel caso specifico, numeri):

  • Where, per selezionare gli elementi secondo un dato criterio
  • Select, per convertire gli elementi secondo una certa regola di trasformazione
  • ForEach, per enumerare gli elementi della collezione
  • Sum, per ottenere la somma dei valori degli elementi

Giorgio Barchiesi
Albo degli Ingegneri Sez. A, N. 4027 della Prov. di Trento
P.IVA 02370260222, C.F. BRC GRG 58L26 C794R

Copyright © 2015-2024 Giorgio Barchiesi - Tutti i diritti riservati