La classe List<T> mette a disposizione il metodo ForEach che permette di eseguire una determinata azione su ogni elemento della lista. Questo metodo è molto comodo, ma poiché fa parte della classe List<T>, non è utilizzabile per le liste restituite da query LINQ a meno che non si invochi il meteodo ToList alla fine della query.
In questo script, creiamo un extension method ForEach che si applica alla classe IEnumerable<T> e che quindi può essere utilizzato anche senza invocare il metodo ToList.
public static IEnumerable<T> ForEach<T>(this IEnumerable<T> input, Action<T> action) { foreach (T item in input) { action(item); } return input; }
Una volta creato l'extension method, possiamo utilizzarlo nel seguente modo.
var data = myList.Where(c => c.IsAvailable) .ForEach(c => Console.Write(c));
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Controllare gli accessi IP alle app con Azure Container Apps
Usare le collection expression per inizializzare una lista di oggetti in C#
Eseguire attività pianificate con Azure Container Jobs
Elencare le container images installate in un cluster di Kubernetes
Copiare automaticamente le secret tra più repository di GitHub
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Evitare la script injection nelle GitHub Actions
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Eseguire operazioni sui blob con Azure Storage Actions
Utilizzare i primary constructor di C# per inizializzare le proprietà
Miglioramenti nell'accessibilità con Angular CDK