计算结果LINQ

Wah*_*eed 2 c# linq linq-to-sql

我使用以下内容

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
            };
Run Code Online (Sandbox Code Playgroud)

在这个现在我想知道,这个查询是否返回任何结果?这该怎么做.

Jon*_*eet 11

不要使用Count()- Any()除非您真正关心计数,否则请使用.

实际上,您可以对此进行简化,因为您不会使用其余结果:

bool validLogin = DataContext.Persons.Any(p => p.UserName == login &&
                                               p.Password == password);
Run Code Online (Sandbox Code Playgroud)

好处Any()是,无论处理什么,查询都可以在找到任何匹配结果后立即停止- 它不需要继续寻找其他可能的匹配.(当然Count()工作,它效率不高,主要是因为操作员本身并没有准确地描述你真正关心的东西.)


The*_*att 5

这应该工作:

if (validLogin.Count() > 0) 
{
     //do work
}
Run Code Online (Sandbox Code Playgroud)