Sono confuso circa il metodo BinarySearch di List<T>
nel caso in cui l'elemento non esiste.C# List <T> .BinarySearch restituisce il valore quando il valore non viene trovato
Ho
List<long> theList = {1, 3, 5, ...}.
theList.BInarySearch(0)
restituisce 0, e theList.BInarySearch(3)
restituisce 1, come previsto.
Tuttavia, theList.BinarySearch(1)
restituisce -2 e non -1 come mi aspetto. Il manuale MSDN dice: "Valore di ritorno: l'indice a base zero di un elemento nell'elenco ordinato, se viene trovato un elemento, altrimenti un numero negativo che è il complemento bit a bit dell'indice dell'elemento successivo più grande di un articolo o , se non c'è un elemento più grande, il complemento bit per bit di Count. "
Un "complemento bit per bit"? Cosa mi manca qui e perché è il theList.BinarySearch(1) != -1
?
Suppongo che stiate cercando 'theList.BinarySearch (2)'? '1' è proprio lì ... – Kobi
Il complemento bitwise è semplicemente un numero che è il complemento di ogni bit del primo numero. 00110101 = ~ 11001010. È come un'operazione non, ma dove! fa un booleano non sull'intero valore, ~ non su ogni bit. –