Daniel OG
per en 18 Maig 2011
963 Vistes

Aquí teniu un codi per saber si un element existeix dins d'una llista d'objectes.

Aquest seria l'equivalent en C# del in_array() de php

Tenim una llista declarada, per exemple, aquesta llista d'strings:

List llista = new List();

I una string que continga el valor a buscar dins la llista:

string buscar = "hola";

Per retornar el primer valor trobat (si existeix), es fa amb el següent iterador Find, que retornarà el valor per defecte del tipus si no s'ha trobat (usualment, null) i el valor si existeix dins de la llista.

string res = llista.Find(delegate(string s)
{
   return (s == buscar); //codi que comprova la igualtat
});
if (res == null) Console.WriteLine("No trobat");
else Console.WriteLine("Valor trobat dins de la llista");

 

Us diré també com fer un for ... each (foreach) d'una llista d'una manera molt elegant:

llista.ForEach(delegate(string s) {
    Console.WriteLine(s);  //fer acció amb el valor
});

Al final m'acabarà agradant C#.

Publicat a: Personal
Sigues el primer a qui li agrada això.
Talia
C # és un acord juju xDD
19 Maig 2011
Daniel OG
També funcionaria com bool trobat = llista.Any(s => s == buscar); O com: string res = llista.FirstOrDefault(s => s == buscar); Això últim és més últim per exemple amb una classe, comparar segons un dels seus membres: Classe c = llista.FirstOrDefault(cl => cl.membre == buscar); if(c==null) //no troba... Veure més
29 Agost 2011