list lambda或delegate查找表达式的第一个结果

时间:2013-02-23 07:19:40

标签: c# .net delegates lambda foreach

这些代码是否返回相同的结果以查找表达式的第一个结果?

        bool daily = false;
        lstDep.ForEach(d => daily = d.DailyAmount < transferedAmount ? true : false);
        lstDep.ForEach(delegate(DepositRoleModel d)
        {
            daily = d.DailyAmount < transferedAmount ? true : false;
        }
            );

我如何打破foreach以获得第一个真实结果?

2 个答案:

答案 0 :(得分:2)

您不需要“打破Foreach”,而是使用.Any()代替:

bool daily = lstDep.Any(d => d.DailyAmount < transferedAmount);

答案 1 :(得分:1)

您可以使用此查询:

bool daily = lstDep.Any(d=>d.DailyAmount < transferedAmount)

它比您的查询更快。 此代码等同于:

bool daily;

foreach(var d in lstDep)
{
    daily = d.DailyAmount < transferedAmount;
    if(daily)
        break;
}