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

kan*_*oid 3 c# wcf linq-to-entities entity-framework

我必须在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;
Run Code Online (Sandbox Code Playgroud)

但"描述"字段有时可以为空.在这些情况下我得到错误.有什么办法可以避免错误吗?

Ica*_*rus 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;
Run Code Online (Sandbox Code Playgroud)

或者可能更好:

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;
Run Code Online (Sandbox Code Playgroud)