1

我认为 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>' 类型的表达式”

4

1 回答 1

11

IEnumerable 不可索引。IQueryable 也不是。

如果您想要 LINQ 查询的第一项,请尝试使用First()FirstOrDefault()Single()SingleOrDefault()方法。

于 2009-07-02T20:01:41.570 回答