在数组元素中查找元素最长用的是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

Posted on 2010-12-29 21:09  lichen396116416  阅读(252)  评论(0编辑  收藏  举报