我有一份表格清单:
List<Form> xxx = new List<Form>();
如何确定它是否包含由特定名称标识的任何表格,例如:
xxx.Contains()
答案 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)
为什么不为每个表单定义一个属性来定义另一个表单。
然后,您可以检查每个表单实例的此属性