一个 lambda 包含三个部分。箭头“=>”,箭头左侧的参数和箭头右侧的表达式或块。
您正在使用这些 lambdas 来创建匿名方法。Lambdas 也可以用来创建表达式树,但我不会在这里讨论。
此方法调用Select将每个输入投射到输出中:
//use the expression syntax, which implies that the value of the expression is returned.
// creates an anonymous method.
Select(uc => uc.comboBox2)
这是通过 lambda 表达式完成的,该表达式访问并返回输入的 combobox2 属性值。这段代码做同样的事情:
//use the block syntax to create an anonymous method.
Select(uc => { return uc.comboBox2; })
如果您不喜欢 lambda,则可以使用您定义的方法,只要该方法的签名与您正在调用的方法的参数匹配即可。
//define a method yourself.
public ComboBox GetComboBox(UserControl1 uc)
{
return uc.combobox2;
}
//use that method in the Select call.
Select(GetComboBox)
此方法调用Any
枚举源并在找到第一个符合条件的项目时停止,返回 true。如果在没有找到匹配项的情况下到达终点,则Any
返回 false。
Any(cb => cb.Text == String.Empty);
lambda 表达式生成一个返回布尔值的匿名方法。Any 使用该方法检查组合框。检查每个组合框,直到其中一个返回 true - 然后由. 返回 true Any
。如果没有组合框返回 true,则返回 false Any
。