C# C如何将不包含与包含进行比较

C# C如何将不包含与包含进行比较,c#,linq,C#,Linq,我有一个列表,试图查询包含某些信息但不包含其他信息的数据。 所以:MgrName包含用户名,或者Name包含用户名,如果是,则Name不包含currentUser.Text var query = from bCal in dc.ListData where bCal.MgrName.Contains(userName) || (bCal.Name.Contains(userName) && bCal.Name !=

我有一个列表,试图查询包含某些信息但不包含其他信息的数据。 所以:MgrName包含用户名,或者Name包含用户名,如果是,则Name不包含currentUser.Text

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)))
但是当我这样尝试的时候,我得到了一个

对象引用未设置为对象错误的实例

最好的方法是什么


谢谢,

看起来像bCal.Name或currentUser。鉴于此,文本为空!=作品除此之外,我看不出有什么理由它不起作用。

为什么这个问题会被否定?如果是负面评论,我将不胜感激,以便我可以改进问题。您可以共享dc.ListData的类型以及它的外观吗?是bCal.Name字符串还是列表?字符串上的Contains与Like相同,而列表中的Contains与in相同。这就是说,如果MgrName或Name为Null,您将获得对象引用not set exception。如果第一个代码有效,但第二个代码无效,那么它实际上只能是currentUser.Text,但我不知道调用string.contains会返回错误?如果currentUser为null,则第一个代码将有相同的错误…current.text不是null,则它必须是bCal.Name,该值为null。@如果currentUser.text为null,则将引发ArgumentNullException,而不是NullReferenceException。它也不是null。奇怪…让我看看是否可以得到更详细的错误