Gif*_*guy 1 .net c# linq ienumerable iqueryable
我认为IQueryable <T>是从IEnumerable中获得的<T>,所以为什么我不能像记录集合一样访问我的查询结果?
public bool DoLogIn(System.String strUserName, System.String strPassword)
{
if (this.IsLoggedIn)
return false;
ASRDBDataContext ASRData = new ASRDBDataContext();
IQueryable<user> CurrUser =
from usr in ASRData.users
where usr.userName == strUserName
where usr.password == strPassword
select usr;
if (CurrUser.Count() != 1)
return false;
this.CurrUserID = CurrUser[0].userID; // Error
return true;
}
Run Code Online (Sandbox Code Playgroud)
返回的错误是:"无法将带有[]的索引应用于类型为'System.Linq.IQueryable <user>' 的表达式"
Ran*_*pho 11
IEnumerable不可索引.也不是IQueryable.
如果您想要LINQ查询的第一项,请尝试使用First(),FirstOrDefault(),Single()或SingleOrDefault()方法.