gpt4 book ai didi

c# - 无法将类型 'System.Collections.Generic.List>' 隐式转换为 'System.Collections.Generic.List

转载 作者:行者123 更新时间:2023-11-30 13:31:11 27 4
gpt4 key购买 nike

我收到以下错误。 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();

最佳答案

问题是目前,您正在选择一系列序列 - 每个 Shareholder 的一个 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 没有意义变量为 new List<ShareholderUser>如果你马上要给它一个不同的值(value)。我还删除了 Include打电话,因为那是不必要的 - 你明确选择了 Shareholder.ShareholderUsers在查询中,因此您不需要包含它。

关于c# - 无法将类型 'System.Collections.Generic.List<System.Collections.Generic.IEnumerable<xxx>>' 隐式转换为 'System.Collections.Generic.List<xxx>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23646898/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com