加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 无法将类型’System.Collections.Generic.List>’隐式

发布时间:2020-12-15 23:43:38 所属栏目:百科 来源:网络整理
导读:我收到以下错误.我用Google搜索了一天多,但我找不到确切的解决方案,请帮帮我谢谢 ERROR: Cannot implicitly convert type System.Collections.Generic.ListSystem.Collections.Generic.IEnumerableADCO.eJMC.EntityDataModel.ShareholderUser to System.Coll
我收到以下错误.我用Google搜索了一天多,但我找不到确切的解决方案,请帮帮我谢谢

ERROR: Cannot implicitly convert type
System.Collections.Generic.List<System.Collections.Generic.IEnumerable<ADCO.eJMC.EntityDataModel.ShareholderUser>>
to
System.Collections.Generic.List<ADCO.eJMC.EntityDataModel.ShareholderUser>

我使用了以下代码

List<ShareholderUser> list = new List<ShareholderUser>();
list = dataContext.EJMCShareholderApprovals
                  .Include(s => s.Shareholder.ShareholderUsers)
                  .Where(e => e.EJMCRequestId == requestId)
                  .Select(s => s.Shareholder.ShareholderUsers
                                .Where(x => x.AccessMode == true))
                  .ToList();

解决方法

问题在于,目前您正在选择一系列序列 – 每个股东的一系列ShareholderUser项目.如果您只想要一个ShareholderUser项列表,则需要展平结果.使用SelectMany最容易做到这一点,在这种情况下,它实际上可以取代你的Select调用.

List<ShareholderUser> list = dataContext.EJMCShareholderApprovals
                                 .Where(e => e.EJMCRequestId == requestId)
                                 .SelectMany(s => s.Shareholder.ShareholderUsers)
                                 .Where(x => x.AccessMode == true)
                                 .ToList();

请注意,如何在多行上打破查询使得阅读更加简单.此外,将列表变量初始化为新的List< ShareholderUser>是没有意义的.如果你那么立即给它一个不同的价值.我还删除了Include调用,因为这是不必要的 – 您在查询中明确选择了Shareholder.ShareholderUsers,因此您不需要包含它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读