日期:2014-05-17  浏览次数:20680 次

判断语句哪种效率更高?
if (A.Contains(a1) && A.Contains(a2))
{
    //
}



if (A.Contains(a1))
{
    if (A.Contains(a2))
    {
       ////
    }
}

个人感觉第二种写法,效率高些,是这样吗?

------解决方案--------------------
  差不多
 可以用大数据量测试 
------解决方案--------------------

------解决方案--------------------
引用 MSDN:
...条件“与”运算符 (&&) 执行其 bool 操作数的逻辑“与”运算,但仅在必要时才计算第二个操作数。

这是微软的参考说明(http://msdn.microsoft.com/zh-cn/library/2a723cdk(v=vs.100).aspx)。

不用担心使用第一种方法。实际上,我们经常这样写:
if (job != null && job.IsReady)
{
   //...
}
当job是null的时候,第二部分就不回执行(不然会有NullReferenceException)。
------解决方案--------------------
推荐第一种写法。
------解决方案--------------------
两种都一样,第一种简洁些
&& 当有条件不符合时都会跳出
------解决方案--------------------
两种写法没区别,都会先执行第一个,第一个false后都不继续执行
------解决方案--------------------
一模一样,微软也是阻断设计的,第一个条件不成立就不会运行第二个条件
------解决方案--------------------
看你习惯用哪种,都差不多的。