ArrayList的BinarySearch方法在使用指定的比较器中搜索一个元素中排序的ArrayList中的一系列元素,并返回元素的索引。
例如,如果我们想从ArrayList搜索任何对象,那么首先应该对ArrayList进行排序,然后我们执行搜索。
C# ArrayList二进制搜索示例
public class SimpleStringComparer : IComparer
{
int IComparer.Compare(object x, object y)
{
int cmpstr = (int)x;
return cmpstr.CompareTo((int)y);
}
}
public class MyArrayList : ArrayList
{
public static void Main()
{
//Creates a new ArrayList.
MyArrayList numbers = new MyArrayList();
numbers.Add(10);
numbers.Add(21);
numbers.Add(54);
numbers.Add(3);
numbers.Add(2);
numbers.Add(10);
numbers.Add(5);
//display the array
Console.WriteLine("The number of elements in the arraylist are:");
foreach (int i in numbers)
{
Console.WriteLine(i);
}
//BinarySearch requires a sorted ArrayList.so perform sorting in arraylist by using sort() method
numbers.Sort();
//display the sorted element
Console.WriteLine("After sorting the arraylist are:");
foreach (int i in numbers)
{
Console.WriteLine(i);
}
//perform searching
int index = numbers.BinarySearch(1,6,21, new SimpleStringComparer());
Console.WriteLine("Binary search, item found at index:{0}", index);
}
}
日期:2020-04-11 22:50:14 来源:oir作者:oir
