List<MyObject> Find and FindAll methods

List<MyObject> Find and FindAll methods

In questo post condivido una porzione di codice di esempio per i metodi Find e FindAll su Liste di oggetti nel linguaggio C#.

Supponiamo di avere la seguente classe Automobile:

///
&lt;summary&gt;
/// Classe Automobile
/// &lt;/summary&gt;

public class Automobile
{
    private String colore;
    private String marca;

    //Costruttore
    public Automobile(string _marca, string _colore) 
    {
        this.marca = _marca;
        this.colore = _colore;
    }
        
    public String Colore {
        get { return this.colore; }
        set { this.colore = value; }
    }        
            
    public String Marca
    {
        get { return this.marca; }
        set { this.marca = value; }
    }
}

e di voler cercare in una Lista di Automobili un oggetto di un certo colore, avremo:

List&lt;Automobile&gt; myList = new List&lt;Automobile&gt;();
Automobile auto = null;

auto = new Automobile(&quot;FIAT&quot;, &quot;rosso&quot;);
myList.Add(auto);   //Add to List

auto = new Automobile(&quot;BMW&quot;, &quot;blu&quot;);
myList.Add(auto);   //Add to List

Automobile foundObj = myList.Find(delegate(Automobile a) { return a.Colore == &quot;rosso&quot;; });

//Restituisce FIAT
Response.Write(foundObj.Marca);

Lo snippet precedente restituisce la prima occorrenza nell’intera classe List, quindi la Response.Write stampa a video “FIAT”.

Se, invece, vogliamo che la Find resituisca tutte le occorrenze nella lista, dobbiamo utilizare la FindAll come di seguito:

List&lt;Automobile&gt; myList = new List&lt;Automobile&gt;();
Automobile auto = null;

auto = new Automobile(&quot;FIAT&quot;, &quot;rosso&quot;);
myList.Add(auto);   //Add to List

auto = new Automobile(&quot;BMW&quot;, &quot;blu&quot;);
myList.Add(auto);   //Add to List

List&lt;Automobile&gt; foundList = null;
foundList = myList.FindAll(
                         delegate(Automobile objFind)
                         {
                             return ((objFind.Colore == &quot;rosso&quot;)
                                     &amp;&amp;
                                     (objFind.Marca == &quot;FIAT&quot;));
                         });

Response.Write(foundList.Count.ToString());

In questo caso la Response.Write stampaerà a video il numero 1.

Enjoy snippet

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.