如何使用Linq作为IF条件

时间:2017-01-17 10:49:59

标签: c# linq if-statement

我在搜索数据库中的客户时遇到了一个小的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条件中表达的内容?

由于

1 个答案:

答案 0 :(得分:8)

只需将条件更改为

if (query.Any(c => c.country.Equals("England")))
   //do nothing
else 
   //add the customer with c.country = "England"

Linq方法Where返回IEnumerable值,无法自动转换为bool值。 AnyAll等方法会根据条件对于集合中的至少一个元素或所有元素的条件是true来返回falsetrue