2

我有一个表格列表:

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

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

xxx.Contains()
4

6 回答 6

1

尝试使用 FindAll 功能

List<Form> xxx = new List<Form>();
int count = xxx.FindAll(x => x.Name.Equals("YourFormName")).Count();
于 2012-06-13T09:46:09.720 回答
0
var result = list.Where(r => r.Name == "YourName").ToList();

编辑:(根据codeparkle)

由于您正在检查表单列表中是否存在具有名称的表单,因此您可能会获得结果计数并查看它是否大于 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;在您的 using 语句中。

于 2012-06-13T09:43:27.017 回答
0

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

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

using System.Linq;

// ...

xxx.Any(item => item.Name == yourDesiredName);
于 2012-06-13T09:44:58.670 回答
0

尝试以下LINQ 表达式

var forms = from form in FormList  
            where form.Name == "A_FORM_NAME"
            select form;
于 2012-06-13T09:47:06.680 回答
0

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

foreach (Form form in xxx) 
{
    if (form.Name == "Whatever") 
    {
        return form.Name;
    }
}
于 2012-06-13T10:49:40.277 回答
-3

为什么你不只是为每个表单放置一个属性来定义另一个表单。

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

于 2012-06-13T09:47:18.990 回答