Je suis confus au sujet de la méthode BinarySearch de List<T>
dans le cas où l'élément n'existe pas.C# List <T> .BinarySearch valeur de retour lorsque la valeur n'est pas trouvée
J'ai
List<long> theList = {1, 3, 5, ...}.
theList.BInarySearch(0)
renvoie 0, et theList.BInarySearch(3)
renvoie 1, comme prévu.
Toutefois, theList.BinarySearch(1)
renvoie -2, et non -1 comme je m'attendais. Le manuel MSDN dit: "Valeur de retour: l'index base zéro de l'élément dans la liste triée, si l'élément est trouvé, sinon, un nombre négatif qui est le complément binaire de l'index de l'élément suivant qui est plus grand que l'élément ou , s'il n'y a pas d'élément plus grand, le complément au nombre de bits de Count. "
Un "complément de bits"? Qu'est-ce que je manque ici et pourquoi est-ce que c'est theList.BinarySearch(1) != -1
?
Je suppose que vous êtes à la recherche de 'theList.BinarySearch (2)'? '1' est juste là ... – Kobi
Le complément binaire est simplement un nombre qui est le complément de chaque bit du premier nombre. 00110101 = ~ 11001010. C'est comme une opération non, mais où! fait un booléen pas sur toute la valeur, ~ fait un pas sur chaque bit. –