我有一个表格列表:
List<Form> xxx = new List<Form>();
如何确定它是否包含由某个名称标识的任何表单,例如:
xxx.Contains()
尝试使用 FindAll 功能
List<Form> xxx = new List<Form>();
int count = xxx.FindAll(x => x.Name.Equals("YourFormName")).Count();
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 语句中。
你还没有真正展示你在做什么,但这是你应该做的:
使用Contains
,您只能检查指定的实例是否在列表中。相反,您可以使用该Enumerable.Any
方法检查任意谓词:
using System.Linq;
// ...
xxx.Any(item => item.Name == yourDesiredName);
尝试以下LINQ 表达式:
var forms = from form in FormList
where form.Name == "A_FORM_NAME"
select form;
您可以遍历您的列表并返回第一个Form.Name
匹配您的搜索词:
foreach (Form form in xxx)
{
if (form.Name == "Whatever")
{
return form.Name;
}
}
为什么你不只是为每个表单放置一个属性来定义另一个表单。
然后您可以为每个表单实例检查此属性