当表达式转换为linq表达式时,索引超出范围

时间:2011-08-11 17:50:01

标签: linq ienumerable

我正在从userGroupsRepository创建一个选择列表项的集合。 我知道有两条记录。

我有什么问题吗?

起初我已经编写了以下代码,因为我认为这是获取我的选择列表项集合的更快方式,其中我有" this._userGroupRepository.All"作为IQueryable

我的收藏是:

List<SelectListItem> listItems = this._userGroupRepository.All.Select(
           userGroup => new SelectListItem() { 
                                   Text = userGroup.GroupName, 
                                   Value = userGroup.UserGroupId.ToString() 
           }).ToList();
然而

这个实现的结果是

  

指数超出范围。必须是非负数且小于   集合。参数名称:index

在这里我有我的集合实现,并将其重写为foreach

  List<SelectListItem> listItems = new List<SelectListItem>();
            foreach (UserGroup userGroup in this._userGroupRepository.All)
            {
                listItems.Add(new SelectListItem(){
                                                Text = userGroup.GroupName, 
                                                Value = userGroup.UserGroupId.ToString()});
            }

1 个答案:

答案 0 :(得分:1)

创建可查询的Enumerable是否有用?

this._userGroupRepository.All.AsEnumerable().Select(