Linq peut-il être utilisé d'une manière ou d'une autre pour trouver l'index d'une valeur dans un tableau?
Par exemple, cette boucle localise l'index de clé dans un tableau.
for (int i = 0; i < words.Length; i++)
{
if (words[i].IsKey)
{
keyIndex = i;
}
}
Réponses:
Cela vous donne en fait l'index entier et non l'objet, quelle que soit la classe personnalisée que vous avez créée
la source
System.Linq
par défaut? C'est là que tout le reste est là!Pour les tableaux, vous pouvez utiliser
Array.FindIndex<T>
::Pour les listes, vous pouvez utiliser
List<T>.FindIndex
:Vous pouvez également écrire une méthode d'extension générique qui fonctionne pour tout
Enumerable<T>
:Et vous pouvez également utiliser LINQ:
la source
la source
Si vous voulez trouver le mot que vous pouvez utiliser
Cela vous donne le premier élément pour lequel IsKey est vrai (s'il n'y en a pas, vous pouvez utiliser
.FirstOrDefault()
Pour obtenir à la fois l'élément et l'index, vous pouvez utiliser
la source
First
, il faut un prédicat, vous n'avez pas besoin duWhere
.Essaye ça...
la source
Je viens de publier mon implémentation de la méthode d'extension IndexWhere () (avec des tests unitaires):
http://snipplr.com/view/53625/linq-index-of-item--indexwhere/
Exemple d'utilisation:
la source
Cette solution m'a aidé davantage, de msdn microsoft :
query
est votretoList()
requête.la source
la source