C# ArrayList.BinarySearch 小問題 --- 必須是按順序存儲 才可以這樣 查找
ArrayList.BinarySearch (Object) | 使用默認(rèn)的比較器在整個已排序的 ArrayList 中搜索元素,并返回該元素從零開始的索引。 |
ArrayList.BinarySearch (Object, IComparer) | 使用指定的比較器在整個已排序的 ArrayList 中搜索元素,并返回該元素從零開始的索引。 |
ArrayList.BinarySearch (Int32, Int32, Object, IComparer) | 使用指定的比較器在已排序 ArrayList 的某個元素范圍中搜索元素,并返回該元素從零開始的索引。
由 .NET Compact Framework 支持。 |
---強調(diào)一點 。因為是 2分查找。所以必須是 按照順序存放值, 否則出錯。
有2個方式實現(xiàn) IComparer 和 類自己 實現(xiàn)一個接口 system 中的
D:\c_\arraylist>Test
person CompareTo(object obj) this person is 4 -- objthis person is 3
person CompareTo(object obj) this person is 2 -- objthis person is 3
person CompareTo(object obj) this person is 104 -- objthis person is 3
find person p3 = new person(3); -3 比較后得不到結(jié)果 嚴(yán)重問題
-----
person CompareTo(object obj) this person is 4 -- objthis person is 5
find person p3 = new person(3); 6
-----
person CompareTo(object obj) this person is 4 -- objthis person is 1
person CompareTo(object obj) this person is 2 -- objthis person is 1
find person p1 = new person(1); 0
-----
person CompareTo(object obj) this person is 4 -- objthis person is 104
person CompareTo(object obj) this person is 5 -- objthis person is 104
person CompareTo(object obj) this person is 1 -- objthis person is 104
person CompareTo(object obj) this person is -88 -- objthis person is 104
find person p6 = new person(104); -10 -- 比較后得不到結(jié)果 嚴(yán)重問題
0 this person is 1
1 this person is 2
2 this person is 104
3 this person is 3
4 this person is 4
5 this person is 122
6 this person is 5
7 this person is 1
8 this person is -88












































































































































































































































