在数组元素中查找元素最长用的是IndexOf 或 LastIndexOf 方法,另外还可以使用BinarySearch方法执行搜索;
indexOf方法从前向后搜索指定的字符串,如果找到返回匹配的第一项自0 的索引,否则返回-1
LastIndexOf 方法从后向前搜索指定的字符串,如果找到返回匹配的第一项自0 的索引,否则返回-1
BianrySearch使用二分查找算法从集合中搜索指定的值,并返回找到从0开始的索引,否则返回-1
代码如下:
#region 查找
String[] str = { "第6个元素","第1个元素", "第3个元素", "第4个元素", "第2个元素", "第5个元素" };
ArrayList al = new ArrayList(str);
int i = al.IndexOf("第3个元素");
Console.WriteLine("第3个元素在集合中的位置是:{0}",i);
i = al.LastIndexOf("第5个元素");
Console.WriteLine("第5个元素在集合中的位置是:{0}", i);
String[] str1 = { "第1个元素", "第2个元素", "第3个元素","第4个元素","第5个元素","第6个元素" };
ArrayList al1 = new ArrayList(str1);
int j = al1.BinarySearch("第2个元素");//使用这个只能是已经排序好的可以否则查找不到;
if (j > 0)
{
Console.WriteLine("第2个元素在集合中的位置是:{0}", j);
}
else
{
Console.WriteLine("没有找到");
}
#endregion
如果上面不定义al1那么在Binary()调用后将执行else