Le délégué ci-dessus, OnlyLargerThanFive, est aussi appelé un Prédicat.
3
Liste<>.Trouver (ce qui donne la première occurence) et de la Liste.FindAll() donne tous les occurences.
Un exemple avec une liste de types complexes serait est comme suit:
Il peut utiliser en interne foreach, mais vous ne pouvez pas vraiment de filtre sans itération pour toute la liste.
2
delà de la façon racontée par @Razzie vous pouvez également utiliser LINQ.
List<string> myList =newList<string>();
myList.Add("hello");
myList.Add("world!");
myList.Add("one");
myList.Add("large!!");var filtered=from s in myList where s.Length>5select s;
PS:- N'EST POSSIBLE QUE DANS .NET 3 et au-dessus de
0
Vous pouvez utiliser LINQ. Je n'ai pas testé, mais je crois qu'il va filtrer les éléments de ma liste de garnitures à tarte pour ne montrer que ceux qui commencent par un "P":
Disons que nous avons un
List<string>
et vous voulez que les éléments pour lesquels la longueur de la chaîne est supérieure à 5.Le code ci-dessous sera de retour d'une
List<string>
avec les résultats:resultList va de l'information "du monde!" et " grand!!'.
Cet exemple utilise une méthode anonyme. Il peut aussi être écrit comme:
Le délégué ci-dessus, OnlyLargerThanFive, est aussi appelé un Prédicat.
Liste<>.Trouver (ce qui donne la première occurence) et de la Liste.FindAll() donne tous les occurences.
Un exemple avec une liste de types complexes serait est comme suit:
J'ai une classe de Rapport:
et une liste de Rapport
Pour rechercher des éléments dans la liste, où ReportName = 'MyReport", le code serait:
Pour obtenir le premier rapport:
Noter que l'objet passé en le délégué doit être de la type avec lequel la liste est remplie.
La meilleure solution est d'utiliser lambda:
Il peut utiliser en interne foreach, mais vous ne pouvez pas vraiment de filtre sans itération pour toute la liste.
delà de la façon racontée par @Razzie vous pouvez également utiliser LINQ.
PS:- N'EST POSSIBLE QUE DANS .NET 3 et au-dessus de
Vous pouvez utiliser LINQ. Je n'ai pas testé, mais je crois qu'il va filtrer les éléments de ma liste de garnitures à tarte pour ne montrer que ceux qui commencent par un "P":
Vous pouvez utiliser LINQ comme ça.
List<string> List = new List<string> { "i", "am", "using", "LINQ!" };
List<string> result = myList.Where(s => s.Length > 3).ToList();
c'est en travaillant qu'en .net 3 et ci-dessus.