在字符串中查找单词,其中字符串可以为null(有时)

时间:2012-08-01 11:53:51

标签: c# wcf entity-framework linq-to-entities

我必须在LINQ to EF搜索中找到一个单词。所以我写了下面的代码

 var Q = (from k in MyList 
                 where k.Name.Contains(query) || k.Description.Contains(query)   
                   select k).Count();
 if (Q == 0)
      continue;

但“描述”字段有时可能为空。在这些情况下我得到错误。 有什么方法可以避免错误吗?

1 个答案:

答案 0 :(得分:5)

在执行包含之前检查null:

var Q = (from k in MyList 
             where k.Description!=null && (k.Name.Contains(query) || k.Description.Contains(query))   
               select k).Count();
if (Q == 0)
  continue;

或者可能更好:

var Q = (from k in MyList 
             k.Name.Contains(query)  || 
              ( string.IsNullOrEmpty(k.Description)? false :   
                k.Description.Contains(query))   
               select k).Count();
if (Q == 0)
  continue;