Öğe mevcut olmadığında, List<T>
'un BinarySearch yöntemi hakkında kafam karıştı. beklendiği gibiC# Liste <T> .BinarySearch değeri, değer bulunamadığında döndürüldü
Ben
List<long> theList = {1, 3, 5, ...}.
theList.BInarySearch(0)
döner 0 ve theList.BInarySearch(3)
döner 1 var. Ancak, theList.BinarySearch(1)
, -2 ve beklediğiniz gibi -1 değil. MSDN elkitabı: "Dönüş değeri: Sıralı Listedeki öğeye göre sıfır temelli öğe, öğe bulunursa, aksi halde, öğeden daha büyük olan bir sonraki öğenin dizininin bitly tamamlayıcısı olan negatif bir sayı veya eğer daha büyük bir eleman yoksa, Kont'un bitlik tamamlayıcısıdır.
A "bitwise complement"? Ne buradayım ve neden bu theList.BinarySearch(1) != -1
?
Sanırım "theList.BinarySearch (2)" aradınız mı? '1' burada ... – Kobi
Biteks tamamlayıcı basitçe, ilk sayının her bir bitinin tamamlayıcısı olan bir sayıdır. 00110101 = ~ 11001010. Bu bir operasyon değil, ama nerede! tüm değere sahip olmayan bir boolean yapar, ~ her bitde olmaz. –