L’altro giorno stavo cercando un modo veloce per eseguire il “Trim” degli elementi di un array di stringhe. Analizzando la classe Array mi sono imbattuto nel metodo Array.ForEach. Questo metodo sembrava proprio fare al caso mio, in quanto permette di eseguire una Action per ogni elemento dell’array, purtroppo però come il classico foreach non permette di modificare gli elementi dell’insieme che stiamo scorrendo.
Sicuro di trovare all’interno della classe Array la soluzione al mio problema ho continuato a cercare fino alla scoperta del metodo Array.ConvertAll. Questo metodo esegue la conversione di tipo fra array permettendo di specificare come parametro la funzione di conversione. Forse non l’ho utilizzato per il motivo per cui è stato sviluppato, ma in definitiva mi ha permesso di ottenere lo scopo con una sola riga di codice (04-06):

string[] myArray = new string[]{ " 23", " 45", " 67 "};
Array.ForEach(myArray, s => Console.Write(s));
// risultato: 23 45 67
myArray = Array.ConvertAll(myArray, 
                               new Converter(s => s.Trim()));
Array.ForEach(myArray, s => Console.Write(s));
// risultato: 234567