login
Inicia sessió

register
Registra't

El blog del Dani

Buscar i ForEach en llista de C#

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#.

Comentaris (2)18-05-2011 23:59:42Programació

RepublicanaRepublicana blog, 19-05-2011 00:27:49

C # és un acord juju xDD

danioldaniol blog, 29-08-2011 13:17:35

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 trobat
else //c trobat

Escriu un nou comentari:

Comentari extern

Nom:


Registrar-me a flog.cat

Usuaris registrats

Usuari de flog.cat:

Contrasenya: