按名称从列表中输入

时间:2012-06-13 09:41:04

标签: c# forms linq list

我有一份表格清单:

List<Form> xxx = new List<Form>(); 

如何确定它是否包含由特定名称标识的任何表格,例如:

xxx.Contains()

6 个答案:

答案 0 :(得分:1)

尝试使用FindAll功能

List<Form> xxx = new List<Form>();
int count = xxx.FindAll(x => x.Name.Equals("YourFormName")).Count();

答案 1 :(得分:0)

var result = list.Where(r => r.Name == "YourName").ToList();

编辑:(根据codesparkle)

由于您正在检查表单列表中是否存在具有名称的表单,因此您可以获得结果计数并查看其是否大于0

if(result.Count > 0) 
{
//Form found in the list
}

在您的情况下,更好的方法是使用Enumerable.Any

你可以这样做:

if (list.Any(r => r.Name == "YourName"))
    {
    //Form found in the list
    }

请记住,您必须在使用声明中加入System.Linq;

答案 2 :(得分:0)

你还没有真正展示你在做什么,但这就是你应该做的事情:

使用Contains,您只能检查指定的实例是否在列表中。相反,您可以使用Enumerable.Any方法检查任意谓词:

using System.Linq;

// ...

xxx.Any(item => item.Name == yourDesiredName);

答案 3 :(得分:0)

尝试以下LINQ expression

var forms = from form in FormList  
            where form.Name == "A_FORM_NAME"
            select form;

答案 4 :(得分:0)

您可以遍历列表并返回与搜索字词匹配的第一个Form.Name

foreach (Form form in xxx) 
{
    if (form.Name == "Whatever") 
    {
        return form.Name;
    }
}

答案 5 :(得分:-3)

为什么不为每个表单定义一个属性来定义另一个表单。

然后,您可以检查每个表单实例的此属性