2013-04-03 101 views
1

我有一個列表,我試圖查詢包含一些信息,但不包含其他信息。 所以:MgrName中包含用戶名,或名稱中包含用戶名,如果是名稱不包含currentUser.TextC#如何做一個不包含一個包含

var query = from bCal in dc.ListData 
      where bCal.MgrName.Contains(userName) || 
        (bCal.Name.Contains(userName) && bCal.Name != currentUser.Text) 
      select bCal; 

,而不是使用

&& bCal.Name != currentUser.Text 

我試圖做類似

where bCal.MgrName.Contains(userName) || (bCal.Name.Contains(userName) && !(bCal.Name.Contains(currentUser.Text))) 

但嘗試它,當這種方式,我得到一個

對象引用未設置爲對象錯誤的實例。

這樣做的最佳方法是什麼?

感謝,

+3

爲什麼這個問題得到了否定?我將不勝感激的意見時爲負,這樣我可以改善你能分享類型的問題 – ironman

+0

那'dc.ListData'是和是什麼樣子? –

+0

bCal.Name是一個字符串還是列表?包含在一個字符串中與「Like」相同,而對於列表,它等同於「in」。這就是說,如果MgrName或Name是Null,你將得到Object reference not set異常。 –

回答

0

好像bCal.NamecurrentUser.Text爲空(因爲!=作品)。除此之外,我沒有看到它不應該起作用的任何理由。

+0

如果第一個代碼工作,但第二次卻沒有,那麼它真的可以的唯一事情就是currentUser.Text,但我不知道叫string.contains(空)返回一個錯誤?如果currentUser爲空,那麼第一個代碼將具有相同的錯誤... – Nevyn

+0

的current.text不爲空 – ironman

+0

那麼它必須是'bCal.Name'是空。 –