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

发布于 2024-11-29 06:46:11 字数 1045 浏览 0 评论 0原文

我正在从我的 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()});
            }

I am creating a collection of select list items from my userGroupsRepository.
I know that there are two records.

Is there something what i am doing wrong?

At first i have written following code as i thought this is a faster way to get my select list item collection, where i have "this._userGroupRepository.All" as IQueryable

my collection is:

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

this implementation however results with

Index was out of range. Must be non-negative and less than the size of
the collection. Parameter name: index

and here i have my implementation of collection with rewriting it as 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()});
            }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天涯离梦残月幽梦 2024-12-06 06:46:11

对你的 Queryable 进行枚举有帮助吗?

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

Does it help to make an Enumerable of your Queryable?

this._userGroupRepository.All.AsEnumerable().Select(
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文