2012-08-01 60 views
3

我必須在LINQ到EF搜索中找到一個字。所以我寫了下面的代碼查找字符串中可能爲空的字(有時)

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

但'描述'字段有時可以爲空。在這些情況下我會遇到錯誤。 有什麼辦法可以避免錯誤?

回答

5

檢查空做之前包含:

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; 
+0

這個簡潔的代碼是精彩;做得很好的小片段! – plast1K 2012-08-01 12:39:52