Estoy confundido acerca del método BinarySearch de List<T>
en caso de que el elemento no exista.C# List <T> .BinarySearch valor de retorno cuando no se encuentra el valor
Tengo
List<long> theList = {1, 3, 5, ...}.
theList.BInarySearch(0)
devuelve 0, y theList.BInarySearch(3)
devuelve 1, como se esperaba. Sin embargo, theList.BinarySearch(1)
devuelve -2, y no -1 como era de esperar. El manual de MSDN dice: "Valor de retorno: El índice basado en cero del artículo en la Lista ordenada, si se encuentra un elemento; de lo contrario, un número negativo que es el complemento bit a bit del índice del siguiente elemento que es más grande que el elemento o , si no hay un elemento más grande, el complemento bit a bit de Count ".
¿Un "complemento bit a bit"? ¿Qué me estoy perdiendo aquí y por qué es que theList.BinarySearch(1) != -1
?
Supongo que está buscando 'theList.BinarySearch (2)'? '1' está ahí ... – Kobi
Complemento de bit a bit es simplemente un número que es el complemento de cada bit del primer número. 00110101 = ~ 11001010. Es como una operación no, ¡pero dónde! un booleano no en el valor completo, ~ no a en cada bit. –