【问题标题】:Index was out of range when expression converted to linq expression表达式转换为 linq 表达式时索引超出范围
【发布时间】:2011-08-11 17:50:00
【问题描述】:

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

是不是我做错了什么?

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

我的收藏是:

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

然而这个实现结果是

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

这里我有我的集合实现,将它重写为 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()});
            }

【问题讨论】:

    标签: linq ienumerable


    【解决方案1】:

    将 Queryable 设为 Enumerable 是否有帮助?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-07
      相关资源
      最近更新 更多