Quando abbiamo un metodo che deve tornare una lista di oggetti, la soluzione più semplice è quella di creare la lista vuota e riempirla con gli oggetti necessari per poi tornarla come nel seguente esempio.
public List<int> GetEvenNumbers(List<int> input)
{
List<int> result = new();
foreach (var value in input)
{
if (value % 2 == 0)
result.Add(value);
}
return result;
}Un'alternativa più elegante, ed efficiente, è quella di usare la parola chiave yield per tornare semplicemente un oggetto della lista. Vediamo come cambia il codice usando questa parola chiave.
public List<int> GetEvenNumbers(List<int> input)
{
foreach (var value in input)
{
if (value % 2 == 0)
yield return value;
}
}Il metodo è ora più compatto. Abbiamo eliminato l'uso della lista temporanea pe contenere i risultati e restituiamo direttamente un oggetto con la parola chiave yield. In questo modo il compilatore capisce che deve restituire l'oggetto al chiamante e poi continuare con il codice per restituire gli altri oggetti.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Sfruttare una CDN con i bundle di ASP.NET
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Le DirectInk API nella Universal Windows Platform
- Gli oggetti CallOut di Expression Blend 4.0
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Inserire le news di Punto Informatico nel proprio sito


