黑马程序员技术交流社区
标题:
foreach与for,linq to object效率问题
[打印本页]
作者:
fcyan86
时间:
2013-5-30 18:03
标题:
foreach与for,linq to object效率问题
本帖最后由 fcyan86 于 2013-5-30 21:01 编辑
int[]numbers=new int[10];
Random rdm=new Random();
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = rdm.Next(100);
Console.Write(numbers[i]+"\t");
}
Console.WriteLine();
//使用linq查出最大值
int maxValue1 = numbers.Max(p => p);
//循环找出最大值
int maxValue2 = numbers[0];
foreach (int number in numbers)
{
if (number > maxValue2)
maxValue2 = number;
}
复制代码
在这段代码中,找出最大值那个快一些,还有for与foreach那个快些,用什么方法可以精确的比较出两都的效率
作者:
zpzhangwenhan
时间:
2013-5-30 20:17
上代码
//测试代码运行的时间
Stopwatch sw = new Stopwatch();
int[]numbers=new int[10];
Random rdm=new Random();
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = rdm.Next(100);
Console.Write(numbers[i]+"\t");
}
Console.WriteLine();
sw.Start();
//使用linq查出最大值
int maxValue1 = numbers.Max(p => p);
sw.Stop();
Console.WriteLine(sw.Elapsed);
sw.Start();
//循环找出最大值
int maxValue2 = numbers[0];
foreach (int number in numbers)
{
if (number > maxValue2)
maxValue2 = number;
}
sw.Stop();
Console.WriteLine(sw.Elapsed);
复制代码
作者:
zpzhangwenhan
时间:
2013-5-30 20:17
本帖最后由 zpzhangwenhan 于 2013-5-30 20:19 编辑
上代码
用这个类,可以运算代码的执行时间
Stopwatch sw = new Stopwatch();
//测试代码运行的时间
Stopwatch sw = new Stopwatch();
int[]numbers=new int[10];
Random rdm=new Random();
for (int i = 0; i < numbers.Length; i++)
{
numbers[i] = rdm.Next(100);
Console.Write(numbers[i]+"\t");
}
Console.WriteLine();
sw.Start();
//使用linq查出最大值
int maxValue1 = numbers.Max(p => p);
sw.Stop();
Console.WriteLine(sw.Elapsed);
sw.Start();
//循环找出最大值
int maxValue2 = numbers[0];
foreach (int number in numbers)
{
if (number > maxValue2)
maxValue2 = number;
}
sw.Stop();
Console.WriteLine(sw.Elapsed);
复制代码
作者:
袁梦希
时间:
2013-5-30 20:32
.net的兄弟真给力,答题很详细,佩服, 以后有事情 或者没加分 给我留言或者看我的个性签名
作者:
fcyan86
时间:
2013-5-30 21:00
回答很给力,学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2