J'ai une liste d'entiers de 1 à 20. Je veux les indices d'éléments qui sont supérieurs à 10 en utilisant linq. Est-il possible de faire avec linq?Trouver des indices d'éléments particuliers dans la liste en utilisant linq
Merci d'avance
J'ai une liste d'entiers de 1 à 20. Je veux les indices d'éléments qui sont supérieurs à 10 en utilisant linq. Est-il possible de faire avec linq?Trouver des indices d'éléments particuliers dans la liste en utilisant linq
Merci d'avance
Utilisation de la surcharge de Select
qui comprend l'indice:
var highIndexes = list.Select((value, index) => new { value, index })
.Where(z => z.value > 10)
.Select(z => z.index);
Les étapes successivement:
public static List<int> FindIndexAll(this List<int> src, Predicate<int> value)
{
List<int> res = new List<int>();
var idx = src.FindIndex(x=>x>10);
if (idx!=-1) {
res.Add(idx);
while (true)
{
idx = src.FindIndex(idx+1, x => x > 10);
if (idx == -1)
break;
res.Add(idx);
}
}
return res;
}
Utilisation
List<int> test= new List<int>() {1,10,5,2334,34,45,4,4,11};
var t = test.FindIndexAll(x => x > 10);
Cela ressemble à une façon assez compliquée de s'y prendre. Si je n'allais pas utiliser LINQ, je ferais probablement une boucle sur moi-même. Notez que votre code échouera actuellement s'il y a * no * entrées correspondant au prédicat - il mettra -1 dans la liste. –
@Jon, ouais vous avez raison ... :( – RameshVel
@ramesh merci pour votre réponse par le par je suis aussi chennai gars – ratty
Skeet @ Jon merci pour votre réponse est-il possible de retrive deux colonnes (comme nous récupérons la base de données) en utilisant LINQ – ratty
@ratty, Il peut être fait par sélectionner, lire 101 échantillons linq (google il) pour comprendre. –
@saeed, savez-vous un lien particulier pour cela – ratty