我必须在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;
但“描述”字段有时可能为空。在这些情况下我得到错误。 有什么方法可以避免错误吗?
答案 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;