Maison >développement back-end >C++ >Comment LINQ peut-il récupérer efficacement l'index d'un objet répondant à des critères spécifiques ?

Comment LINQ peut-il récupérer efficacement l'index d'un objet répondant à des critères spécifiques ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-15 11:34:441019parcourir

How Can LINQ Efficiently Retrieve the Index of an Object Meeting Specific Criteria?

LINQ : trouver efficacement des index d'objets

La manipulation des données nécessite souvent de trouver l'index d'un objet correspondant à des critères spécifiques. Alors que les boucles traditionnelles fonctionnent, LINQ fournit une solution plus propre et plus efficace.

Imaginez que vous avez une collection d'objets (comme un ensemble de voitures). Pour trouver l'index de la première voiture répondant à une certaine condition, LINQ propose une approche concise.

La clé est de transformer la collection originale en une séquence de tuples, chacun contenant un objet et son index. La méthode Select de LINQ, utilisant une expression lambda, permet d'obtenir ceci :

<code class="language-csharp">myCars.Select((car, index) => new {car, index})</code>

Cela crée une nouvelle séquence. Maintenant, utilisez la méthode First pour trouver le premier tuple satisfaisant votre condition :

<code class="language-csharp">myCars.Select((car, index) => new {car, index}).First(myCondition).index;</code>

Pour encore plus de concision, exploitez l'inférence de type :

<code class="language-csharp">myCars.Select((car, index) => (car, index)).First(myCondition).index;</code>

Cela renvoie directement l'index du premier objet correspondant, éliminant ainsi le besoin de méthodes de bouclage moins efficaces. Notez que myCondition représente vos critères spécifiques de sélection de la voiture, et First lancera une exception si aucune correspondance n'est trouvée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn