本文整理汇总了C#中System.Collections.ArrayList.BinarySearch方法的典型用法代码示例。如果您正苦于以下问题:C# ArrayList.BinarySearch方法的具体用法?C# ArrayList.BinarySearch怎么用?C# ArrayList.BinarySearch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Collections.ArrayList
的用法示例。
在下文中一共展示了ArrayList.BinarySearch方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
//引入命名空间
using System;
using System.Collections;
public class SamplesArrayList {
public static void Main() {
// Creates and initializes a new ArrayList. BinarySearch requires
// a sorted ArrayList.
ArrayList myAL = new ArrayList();
for ( int i = 0; i <= 4; i++ )
myAL.Add( i*2 );
// Displays the ArrayList.
Console.WriteLine( "The Int32 ArrayList contains the following:" );
PrintValues( myAL );
// Locates a specific object that does not exist in the ArrayList.
Object myObjectOdd = 3;
FindMyObject( myAL, myObjectOdd );
// Locates an object that exists in the ArrayList.
Object myObjectEven = 6;
FindMyObject( myAL, myObjectEven );
}
public static void FindMyObject( ArrayList myList, Object myObject ) {
int myIndex=myList.BinarySearch( myObject );
if ( myIndex < 0 )
Console.WriteLine( "The object to search for ({0}) is not found. The next larger object is at index {1}.", myObject, ~myIndex );
else
Console.WriteLine( "The object to search for ({0}) is at index {1}.", myObject, myIndex );
}
public static void PrintValues( IEnumerable myList ) {
foreach ( Object obj in myList )
Console.Write( " {0}", obj );
Console.WriteLine();
}
}
输出:
The Int32 ArrayList contains the following: 0 2 4 6 8 The object to search for (3) is not found. The next larger object is at index 2. The object to search for (6) is at index 3.
示例2: Main
//引入命名空间
using System;
using System.Collections;
public class SimpleStringComparer : IComparer
{
int IComparer.Compare(object x, object y)
{
string cmpstr = (string)x;
return cmpstr.CompareTo((string)y);
}
}
public class MyArrayList : ArrayList
{
public static void Main()
{
// Creates and initializes a new ArrayList.
MyArrayList coloredAnimals = new MyArrayList();
coloredAnimals.Add("White Tiger");
coloredAnimals.Add("Pink Bunny");
coloredAnimals.Add("Red Dragon");
coloredAnimals.Add("Green Frog");
coloredAnimals.Add("Blue Whale");
coloredAnimals.Add("Black Cat");
coloredAnimals.Add("Yellow Lion");
// BinarySearch requires a sorted ArrayList.
coloredAnimals.Sort();
// Compare results of an iterative search with a binary search
int index = coloredAnimals.IterativeSearch("White Tiger");
Console.WriteLine("Iterative search, item found at index: {0}", index);
index = coloredAnimals.BinarySearch("White Tiger", new SimpleStringComparer());
Console.WriteLine("Binary search, item found at index: {0}", index);
}
public int IterativeSearch(object finditem)
{
int index = -1;
for (int i = 0; i < this.Count; i++)
{
if (finditem.Equals(this[i]))
{
index = i;
break;
}
}
return index;
}
}
//
输出:
Iterative search, item found at index: 5 Binary search, item found at index: 5
示例3: Album
//引入命名空间
using System;
using System.Collections;
class Album : IComparable, ICloneable {
private string _Title;
private string _Artist;
public Album(string artist, string title) {
_Artist = artist;
_Title = title;
}
public string Title {
get {
return _Title;
}
set {
_Title = value;
}
}
public string Artist {
get {
return _Artist;
}
set {
_Artist = value;
}
}
public override string ToString() {
return _Artist + ",\t" + _Title;
}
public int CompareTo(object o) {
Album other = o as Album;
if (other == null)
throw new ArgumentException();
if (_Artist != other._Artist)
return _Artist.CompareTo(other._Artist);
else
return _Title.CompareTo(other._Title);
}
public object Clone() {
return new Album(_Artist, _Title);
}
}
class TitleComparer : IComparer {
public int Compare(object l, object r) {
Album left = l as Album;
Album right = r as Album;
if ((left == null) || (right == null))
throw new ArgumentException();
if (left.Title != right.Title)
return left.Title.CompareTo(right.Title);
else
return left.Artist.CompareTo(right.Artist);
}
}
class Class1 {
static void Main(string[] args) {
ArrayList arr = new ArrayList();
arr.Add(new Album("G", "A"));
arr.Add(new Album("B", "G"));
arr.Add(new Album("S", "A"));
arr.Sort();
try {
foreach (Album a in arr) {
Console.WriteLine(a);
}
} catch (System.InvalidCastException e) {
}
arr.Sort(new TitleComparer());
foreach (Album a in arr) {
Console.WriteLine(a);
}
Album l = new Album("L", "G");
arr.Sort();
int index = arr.BinarySearch(l);
Console.WriteLine(index.ToString());
arr.Sort(new TitleComparer());
index = arr.BinarySearch(l, new TitleComparer());
Console.WriteLine(index.ToString());
}
}