我正在使用以下
var validLogin = from P in this.DataContext.Persons
where P.UserName.Equals(login) && P.Password.Equals(password)
select new
{
P.FirstName,
P.LastName,
P.EmailAddress
};
现在我想知道,此查询是否返回任何结果?这该怎么做。
答案 0 :(得分:11)
请勿使用Count()
- 使用Any()
,除非您真正关心计数。
您实际上可以对此进行简化,因为您不会使用其余结果:
bool validLogin = DataContext.Persons.Any(p => p.UserName == login &&
p.Password == password);
关于Any()
的好处是,无论处理什么,查询都可以在找到任何匹配结果后立即停止 - 它不需要继续寻找其他可能的匹配。 (Count()
当然会工作,它只是效率不高,主要是因为操作员本身并没有准确地描述你真正关心的内容。)
答案 1 :(得分:5)
这应该有效:
if (validLogin.Count() > 0)
{
//do work
}
答案 2 :(得分:0)
if (validLogin.Count() > 0){}