C# Linq:除(空)

C# Linq:除(空),c#,linq,C#,Linq,我知道这个问题的标题很模糊,但我不知道如何用几句话来准确描述。我想做的是对网页访问者做一个简单的统计。当人们访问页面时,它的IP将存储在数据库中,我计算IP以查看一个页面的访问次数,但我不想确定我的IP。所以我的代码是: WebStatDataContext dc = new WebStatDataContext(_connString); var query = from v in dc.VisitorInfos where v.IP == "208.xxx.xxx.6

我知道这个问题的标题很模糊,但我不知道如何用几句话来准确描述。我想做的是对网页访问者做一个简单的统计。当人们访问页面时,它的IP将存储在数据库中,我计算IP以查看一个页面的访问次数,但我不想确定我的IP。所以我的代码是:

WebStatDataContext dc = new WebStatDataContext(_connString);
var query = from v in dc.VisitorInfos
            where v.IP == "208.xxx.xxx.69"&&v.Site==site
            select v.IP;
var all = from v1 in dc.VisitorInfos
          where v1.Site==site
          select v1.IP;
int result = all.Except(query).Count();
return result;
然而,我发现如果查询为null,它将返回1。如果查询不为null,则结果是正确的。这里发生了什么?

当您说查询为null时,您的意思是它有一个value=null的元素吗?为什么不使用v.IP!=208.xxx.xxx.69在where子句中的第一位?查询不能为空,因为您在调用Except之前将其赋值给。。。它不能产生空结果,因为您检查where子句中的值。。。请澄清这个问题