C# 将所选控件保存在列表中,然后进行比较

C# 将所选控件保存在列表中,然后进行比较,c#,visual-studio,C#,Visual Studio,我想在列表中保存一些选定的控件,然后进行比较,我只能选择两个控件,这样就可以了 每个控件都选择了一个布尔属性,我需要:Selected==True 如何创建返回所选控件的方法 比如: foreach (Control c in Controls) { if ( this.Selected == true ) { // how to add to

我想在列表中保存一些选定的控件,然后进行比较,我只能选择两个控件,这样就可以了

每个控件都选择了一个布尔属性,我需要:
Selected==True

如何创建返回所选控件的方法

比如:

    foreach (Control c in Controls)
            {
                if (  this.Selected == true )

                   {
                       // how to add to a list
                   }

            }

使用
LINQ
可以在一行中完成,这将把所有选定的控件放入一个列表并返回:

return Controls.Where(c => c.Selected).ToList();
如果要使用foreach,只需创建一个列表来存储控件,并用所选控件填充列表:

var selectedControls = new List<Control>();
foreach(var c in Controls)
{
    if(c.Selected) selectedControls.Add(c);
}

return selectedControls;
var selectedControls=new List();
foreach(控制中的var c)
{
如果(c.选中),则选择控制。添加(c);
}
返回所选控件;

谢谢,我如何用正确的方法插入下面的代码,你能给我看一下foreach循环中的代码吗?你可以去掉foreach让我保留foreach以便于理解,我可以看出这比你做的更简单