将列表作为IEnumerable返回

时间:2013-09-10 16:46:50

标签: c# asp.net-mvc

在我的方法中,我希望返回一个IEnumerable,但我创建了一个列表,所以我可以添加结果到它,我想返回创建的列表添加项目作为一个不可数,但无法将列表作为ienumerable返回。我试图创建一个不可数,所以我可以添加项目,但它不允许我添加。

这是我的方法:

public IEnumerable<IGrouping<string,User>> GetUser(int? id, int? pageNumber)
        {
            int _pageNum = pageNumber.HasValue ? pageNumber.Value : 1;
            var userIndex = new UserService().GetUsers(id.Value, pageNumber: _pageNum).GroupBy(x => x.Name.Substring(0, 1));
            var userList = new List<User>();
            foreach (var group in userIndex)
            {
                string curLetter = group.Key;
                foreach (User user in group)
                {
                    userList.Add(user);
                }
            }
            return userList.AsEnumerable();
        }

2 个答案:

答案 0 :(得分:0)

根据我的理解:

public IEnumerable<IGrouping<string,User>> GetUser(int? id, int? pageNumber)
    {
        int _pageNum = pageNumber.HasValue ? pageNumber.Value : 1;
        return new UserService().GetUsers(id.Value, pageNumber: _pageNum).OrderBy(x => x.Name.Substring(0, 1));
    }

也许我没有得到你的问题。

@Servy指出了问题,为什么不是

public IEnumerable<IGrouping<string, User>> GetUser(int? id, int? pageNumber)
{
    int _pageNum = pageNumber.HasValue ? pageNumber.Value : 1;
    return new UserService().GetUsers(id.Value, pageNumber: _pageNum).GroupBy(x => x.Name.Substring(0, 1));
}

答案 1 :(得分:-2)

使用ActionResult作为Action的返回类型 并改变 return userList;返回userList.tolist();