Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

Array.BinarySearch(T), méthode (T[], T)

Recherche un tableau trié unidimensionnel entier pour un élément spécifique, via l'interface générique d'IComparable(T) implémentée par chaque élément Array et l'objet spécifié.

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)
static member BinarySearch : 
        array:'T[] * 
        value:'T -> int 

Paramètres de type

T

Type des éléments du tableau.

Paramètres

array
Type : T[]
Array trié de base zéro unidimensionnel à explorer.
value
Type : T
Objet à rechercher.

Valeur de retour

Type : System.Int32
Index du value spécifié dans le array spécifié, si value est trouvé. Si value est introuvable et si value est inférieur à un ou plusieurs éléments de array, un nombre négatif qui est le complément d'opération de bits de l'index du premier élément supérieur à value. Si value est introuvable et si value est supérieur à un élément quelconque de array, un nombre négatif qui est le complément d'opération de bits de (l'index du dernier élément plus 1).
ExceptionCondition
ArgumentNullException

array a la valeur une référence null (Nothing en Visual Basic).

InvalidOperationException

T n'implémente pas l'interface générique de IComparable(T).

Cette méthode ne prend pas en charge la recherche dans les tableaux qui contiennent des index négatifs. array doit être trié avant d'appeler cette méthode.

Si array ne contient pas la valeur spécifiée, la méthode retourne un entier négatif. Vous pouvez appliquer l'opérateur de bits de complément (| en C#, Not dans Visual Basic) au résultat négatif pour produire un index. Si cet index est égale à la taille du tableau, il n'y a aucun élément supérieure value dans le tableau. Sinon, c'est l'index du premier élément plus grand que value.

T doit implémenter l'interface générique de IComparable(T), utilisée pour les comparaisons. Les éléments de array doivent déjà être triés par ordre croissant selon l'ordre de tri défini par l'implémentation de IComparable(T), faute de quoi le résultat peut être incorrect.

Les éléments dupliqués sont autorisés. Si Array contient plusieurs éléments équivalant à value, la méthode retourne l'index d'une seule occurrence (n'importe laquelle, pas nécessairement la première).

une référence null (Nothing en Visual Basic) peut toujours être comparé à n'importe quel autre type référence. Par conséquent, les comparaisons avec une référence null (Nothing en Visual Basic) ne génèrent pas d'exception.

RemarqueRemarque

Pour chaque élément testé, value est passée à l'implémentation de IComparable(T) appropriée, même si value est une référence null (Nothing en Visual Basic). Autrement dit, l'implémentation de IComparable(T) détermine comment un élément donné est comparé à une référence null (Nothing en Visual Basic).

Cette méthode est une opération O(log n), où n est le Length de array.

L'exemple de code suivant illustre les surcharges des méthodes génériques Sort(T)(T[]) et BinarySearch(T)(T[], T). Un tableau de chaînes est créé, sans ordre particulier.

Le tableau est affiché, trié et affiché une nouvelle fois. Les tableaux doivent être triés pour utiliser la méthode BinarySearch.

RemarqueRemarque

Les appels aux méthodes génériques Sort et BinarySearch sont identiques aux appels aux méthodes non génériques, car Visual Basic, C# et C++ déduisent le type du paramètre de type générique à partir du type du premier argument. Si vous utilisez le Ildasm.exe (Désassembleur MSIL) pour examiner le langage MSIL (Microsoft Intermediate Language), vous pouvez constater que les méthodes génériques sont appelées.

La surcharge de la méthode générique BinarySearch(T)(T[], T) est ensuite utilisée pour rechercher deux chaînes, dont l'une est contenue dans le tableau et l'autre pas. Le tableau et la valeur de retour de la méthode BinarySearch sont passés à la méthode générique ShowWhere, qui affiche la valeur d'index si la chaîne est détectée, ou sinon, les éléments qui délimitent la chaîne de recherche si elle figurait dans le tableau. L'index est négatif si la chaîne n'est pas dans le tableau, la méthode ShowWhere prend le complément de bits (| C# d'opérateur et Visual C++, Xor -1 dans Visual Basic) pour obtenir l'index du premier élément de la liste supérieure à la chaîne recherchée.

Aucun exemple de code n'est actuellement disponible ou ce langage n'est pas pris en charge.

.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

Afficher:
© 2014 Microsoft. Tous droits réservés.