我正在WPF中创建一个产品编辑表单。此表单包含以下属性的文本框:Id
,Code
,Width
,Height
和Color
。
Id
和Code
无法重复,因此我想在Code
事件中对Code_TextChanged
重复进行“检查”。
我已尝试使用以下lambda表达式进行检查:
// List<Product> products = …;
if (products.Where(x => x.code.Equals(Code.Text))
.Count(g => !g.id.Equals(Id.Text)) > 0)
CodeExist = true;
我不知道为什么,当我打开一个寄存器时,它会将CodeExist
标记为真。
如何为过滤器product.code.Equals(Code.Text)
和!product.id(Id.Text)
制作条件?
答案 0 :(得分:3)
您可以使用“&amp;&amp;”添加多个条件(相当于SQL中的“AND”)或“||” (相当于SQL中的“OR”)。
如果集合中的一个或多个元素与条件匹配,您还可以使用LINQ“Any()”方法返回true。
所以你的if语句应为:
if(products.Any(x=>x.code.Equals(Code.Text) && !x.id.Equals(Id.Text))){
CodeExists = true;
}
编辑:用“!”修正了小错字放置。