/// <summary> /// 使用for循环判断 /// </summary> /// <param name="str"></param> /// <param name="Num"></param> /// <returns></returns> private static int MetFor(string[] str, string Num) { for (int i = 0; i < str.Length; i++) { if (str[i] == Num) { return i; } } return -1; }
/// <summary> /// 使用递归循环方法判断 /// </summary> /// <param name="str"></param> /// <param name="Num"></param> /// <returns></returns> private static int MetRecursion(string[] str, string Num, int i) { if (i > str.Length) { return -1; } if (str[i] == Num) { return i; }
i++; return MetRecursion(str, Num, i);
}
/// <summary> /// 使用Linq查询 /// </summary> /// <param name="str"></param> /// <param name="Num"></param> /// <returns></returns> private static int MetNinq(string[] str, string Num) {
///使用Linq查询,将索引和值查出来, ///新建一个匿名类,属性包括 aa bool类型,和 Index 索引 var tt = str.Select((num, index) => new { aa = (Num == num), Index = index
}); //将得到的输出结果进行判断,查找 aa为true的索引值 //最后成功得到它的索引 int number = tt.Where(n => n.aa == true).Last().Index; return number; }
---------------------------------------------------------------------------------性能测试结果对数组存在 110000条数据进行测试在同一台配置的计算机上:
使用for循环判断速度最快! 耗时约:16毫秒
使用 Linq查询,速度一般! 耗时约: 25毫秒
使用 递归判断!(OFF,>>>直接服务停止>>>>)原文来自:http://hi.baidu.com/xiaowei0705/blog/item/d952f033de6e820febc4af82.html