在foreach中使用lambda函数而不是控件

Don*_*noh 0 .net c# linq lambda winforms

我想翻译一下:

foreach(Control c in Controls)
{
    if(c is TextBox)
    {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

成:

foreach(Control c => (c is TextBox) in Controls)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

如何使用lambda函数专门完成?

Sal*_*ari 9

用途OfType:

foreach (TextBox c in Controls.OfType<TextBox>())
{

}
Run Code Online (Sandbox Code Playgroud)

它根据指定的类型过滤IEnumerable的元素.

另外,不要忘记首先将LINQ添加到您的using指令中:

using System.Linq;
Run Code Online (Sandbox Code Playgroud)