我想知道根据https://docs.microsoft.com/zh-cn/dotnet/csharp/discards在Linq查询中使用Discards是否是一个好模式,例如:
public bool HasRedProduct => Products.Any(_=>_.IsRed == true);
Run Code Online (Sandbox Code Playgroud)
什么是优点/缺点,而不是使用
public bool HasRedProduct => Products.Any(x=>x.IsRed == true);
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 14
那不是丢弃-这是一个名为的lambda表达式参数_。它属于本文后面的注释:
请注意,这
_也是一个有效的标识符。在受支持的上下文之外使用时,不_被视为丢弃,而是被视为有效变量。
您可以说这不是丢弃,因为它的值没有被丢弃 -您在其余的lambda表达式中使用了它。我强烈不鼓励使用_,当你作为一个lambda表达式参数名称都使用值。它的优良使用_,当你作为一个参数名称要到,虽然放弃它,即使它不是技术上从语言的角度丢弃。_之所以选择这个名称是因为它实际上已被使用。