我认为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;
}
返回的错误是:“无法将带有[]的索引应用于类型为”System.Linq.IQueryable <user>
“的表达式
答案 0 :(得分:11)
IEnumerable不可索引。也不是IQueryable。
如果您想要LINQ查询的第一项,请尝试使用First(),FirstOrDefault(),Single()或SingleOrDefault()方法。