Ici, j'ai un exemple simple pour trouver un élément dans une liste de chaînes. Normalement j'utilise pour la boucle ou délégué anonyme pour le faire comme ceci:Trouvez un article dans la liste par LINQ?
int GetItemIndex(string search)
{
int found = -1;
if (_list != null)
{
foreach (string item in _list) // _list is an instance of List<string>
{
found++;
if (string.Equals(search, item))
{
break;
}
}
/* use anonymous delegate
string foundItem = _list.Find(delegate(string item) {
found++;
return string.Equals(search, item);
});
*/
}
return found;
}
LINQ est nouveau pour moi. Je suis curieux de savoir si je peux utiliser LINQ pour trouver un élément dans la liste? Comment si possible?
C'est génial. Cependant, ce sont tous des styles d'expression lamda. J'utilise une liste simple ici. La liste peut être une classe avec plusieurs propriétés et certaines sont utilisées pour la recherche. Donc, n'importe quel moyen LINQ de rechercher comme "de .. dans ... où ... sélectionnez ..." –
Nah, désolé. La plupart de ces méthodes (First, Single, Any, ...) ne peuvent pas être * directement * traduites dans cette forme. –
Peu importe, en fait, vous pouvez vous débarrasser des lambdas pour quelques cas ... –