C# .Net 4.0无法强制转换类型为';System.Collections.Generic.List`1[ClassName]';输入';类名'; public class SkillView{ 公共字符串名称{get;set;} 公共IList已选择{get;set;}} 公共类SkillValueView{ 公共字符串APlan{get;set;} 公共日期时间?DueDate{get;set;} 私有IList MapToSkillValueList(iGroup查询) { var actionItem=query.FirstOrDefault(); List LSVV=新列表(); SkillValueView SVV=新的SkillValueView(); for(int i=0;is.ExAPlan).Select(MapToSkillValueList.ToList()) }; }

C# .Net 4.0无法强制转换类型为';System.Collections.Generic.List`1[ClassName]';输入';类名'; public class SkillView{ 公共字符串名称{get;set;} 公共IList已选择{get;set;}} 公共类SkillValueView{ 公共字符串APlan{get;set;} 公共日期时间?DueDate{get;set;} 私有IList MapToSkillValueList(iGroup查询) { var actionItem=query.FirstOrDefault(); List LSVV=新列表(); SkillValueView SVV=新的SkillValueView(); for(int i=0;is.ExAPlan).Select(MapToSkillValueList.ToList()) }; },c#,.net,linq,lambda,c#-4.0,C#,.net,Linq,Lambda,C# 4.0,我无法映射此>Selected=query.GroupBy(s=>s.ExAPlan).Select(MapToSkillValueList).ToList(),并且无法强制转换类型为“System.Collections.Generic.List`1[IsaiX.Coach.Models.SkillValueView]的对象时出错'键入'IsaiX.Coach.Models.SkillValueView'。在这种情况下,您应该使用而不是选择 public class SkillView { p

我无法映射此>Selected=query.GroupBy(s=>s.ExAPlan).Select(MapToSkillValueList).ToList(),并且无法强制转换类型为“System.Collections.Generic.List`1[IsaiX.Coach.Models.SkillValueView]的对象时出错'键入'IsaiX.Coach.Models.SkillValueView'。

在这种情况下,您应该使用而不是
选择

public class SkillView {
public string Name { get; set; } 
public IList<SkillValueView> Selected { get; set; }}

public class SkillValueView {
    public string APlan { get; set; }
    public DateTime? DueDate { get; set; }}

private IList<SkillValueView> MapToSkillValueList(IGrouping<string, GetSession_Result> query)
    {
        var actionItem = query.FirstOrDefault();
        List<SkillValueView> LSVV = new List<SkillValueView>();
        SkillValueView SVV = new SkillValueView();

        for (int i = 0; i < actionItem.NoOf; i++)
            {
                SVV.APlan = actionItem.ExAPlan;
                SVV.DueDate = actionItem.ExDueDate;
                LSVV.Add(new SkillValueView() { APlan = SVV.APlan, DueDate = SVV.DueDate });
            }
        }
        return LSVV;
    }

private SkillView MapToSkill(IGrouping<int, GetSession_Result> query){
    var skill = query.FirstOrDefault();
    return new SkillView()
        {
            Name = skill.SkillName,
            Selected = query.GroupBy(s => s.ExAPlan).Select(MapToSkillValueList).ToList()
        }; 
}
将序列的每个元素投影到IEnumerable,并将结果序列展平为一个序列


我相信您正在寻找的是
SelectMany
,而不是
Select
query.GroupBy(s=>s.ExAPlan)。选择many(MapToSkillValueList)。ToList()
。“SelectMany将结果序列展平为一个序列”感谢@Igor它解决了这个问题。
query.GroupBy(s => s.ExAPlan).SelectMany(MapToSkillValueList).ToList().