我正在研究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;
}