Façon la plus propre pour Trouver une Correspondance Dans une Liste
Quel est le meilleur moyen de trouver quelque chose dans une liste? Je sais LINQ a quelques bons trucs, mais nous allons également obtenir des suggestions pour C# 2.0. Permet d'obtenir le meilleur refactorings pour cette commune du modèle de code.
Actuellement, je utiliser un code comme ceci:
//mObjList is a List<MyObject>
MyObject match = null;
foreach (MyObject mo in mObjList)
{
if (Criteria(mo))
{
match = mo;
break;
}
}
ou
//mObjList is a List<MyObject>
bool foundIt = false;
foreach (MyObject mo in mObjList)
{
if (Criteria(mo))
{
foundIt = true;
break;
}
}
OriginalL'auteur Nick | 2008-08-23
Vous devez vous connecter pour publier un commentaire.
En C# 2.0, vous devez écrire:
3.0 sait lambdas:
OriginalL'auteur Konrad Rudolph
À l'aide d'une expression Lambda:
OriginalL'auteur Todd
Mettre le code dans une méthode et vous enregistrer temporaire et
break
(et de les recycler code, comme un bonus):... mais bien sûr, cette méthode existe déjà de toute façon pour les Listes, même dans .NET 2.0.
OriginalL'auteur Konrad Rudolph
Évidemment, les performances de délégués anonymes est assez significative.
Code de Test:
Résultats:
Dans tous les cas, l'utilisation anonyme des délégués est d'environ 100% plus lent que les autres.
Find
fonction dans ce contexte.OriginalL'auteur Nick