3

我必须在 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;

但是“描述”字段有时可以为空。在这些情况下我会出错。有什么办法可以避免这个错误??

4

1 回答 1

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;
于 2012-08-01T11:55:46.443 回答