J'ai un tableau d'un certain type. Maintenant, je veux trouver une entrée où une certaine condition est remplie.Array.BinarySearch où une certaine condition est remplie
Quelle est la manière préférée de le faire avec la restriction que je ne veux pas créer un objet temporaire à trouver, mais je veux seulement donner une condition de recherche.
MyClass[] myArray;
// fill and sort array..
MyClass item = Array.BinarySearch(myArray, x=>x.Name=="Joe"); // is this possible?
Peut-être est-il possible d'utiliser LINQ pour le résoudre? Je sais que cela fonctionne sur les collections normales, mais j'en ai besoin pour travailler avec BinarySearch. Il suffit d'utiliser FirstOrDefault (ou SingleOrDefault, si unique)
le premier n'est pas binarysearch. le second crée un objet temporaire à trouver que je ne veux pas créer, comme je l'ai dit dans la question. – codymanix
Désolé. J'ai mal interprété votre question comme ne voulant pas créer un tableau temporaire. Je pense que votre restriction de ne pas créer un objet temporaire est erronée car elle facilite la solution. Sinon, vous devez créer un comparateur plus complexe qui peut comparer un objet MyClass à une chaîne. – tvanfosson
@codymanix - note J'ai mis à jour ma réponse avec une chaîne/un comparateur MyClass qui, je pense, répond à vos besoins - sauf qu'il utilise un objet chaîne temporaire. :-) – tvanfosson