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()) }; }
我无法映射此>Selected=query.GroupBy(s=>s.ExAPlan).Select(MapToSkillValueList).ToList(),并且无法强制转换类型为“System.Collections.Generic.List`1[IsaiX.Coach.Models.SkillValueView]的对象时出错'键入'IsaiX.Coach.Models.SkillValueView'。在这种情况下,您应该使用而不是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
选择
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().