我正在研究C#/ ASP.NET教程,遇到了从未见过的运算符。

return RSVPs.Any(r => r.AttendeeName.Equals(userName, StringComparison.InvariantCultureIgnoreCase));


在这行代码中=>是什么意思?

最佳答案

这是一个lambda表达式。在示例中,您给出的“ r”是列表中的一个项目。此代码将迭代您的列表[RSVPs],以查找“ r”,其中AttendeeName与您的userName中的名称相同。

为了了解正在发生的事情,您需要了解委托,但是从本质上来说,Coles Notes版本是=>左边的参数(在这种情况下为r)是要迭代的列表[RSVPs]中的一项。依次,对于r的每个实例,您正在检查某物。从用户的角度来看,这大致相当于:

public bool HasRSVP(List<RSVP> RSVPs, string userName)
{
    foreach(RSVP r in RSVPs)
        if(r.AttendeeName.Equals(userName, StringComparison.InvariantCulture))
            return true;
    return false;
}

08-27 07:06