我在搜索数据库中的客户时遇到了一个小的linq查询:
var query =
from c in database.customer
where c.ID == input
select c;
每个客户都有一个ID,在这种情况下由用户设置 - "输入"
数据库中的所有客户均来自德国"但是有些应该被复制到具有不同国家价值的数据库中("英格兰"而不是"德国")
现在,在将它们直接添加到数据库之前,我想检查是否已经存在"英文版本"这个客户在数据库中。
if (query.Where(c => c.country == "England"))
//do nothing
else
//add the customer with c.country = "England"
问题是这不是一个常规的if语句。
是否有可能实现我想在此if条件中表达的内容?
由于
答案 0 :(得分:8)
只需将条件更改为
if (query.Any(c => c.country.Equals("England")))
//do nothing
else
//add the customer with c.country = "England"
Linq
方法Where
返回IEnumerable
值,无法自动转换为bool
值。
Any
或All
等方法会根据条件对于集合中的至少一个元素或所有元素的条件是true
来返回false
或true
。