当前位置:编程学习 > C#/ASP.NET >>

MVC新手求助?

无法将类型“System.Collections.Generic.List<AnonymousType#1>”隐式转换为“System.Collections.Generic.IList<Fitness.Models.Activity>”。存在一个显式转换(是否缺少强制转换?) --------------------编程问答-------------------- 你用linq取了一个匿名类型集合出来了吧。你这样强转肯定报错的。

var list = new List<Fitness.Models.Activity>();
var alist = from p in list select new{A=p.A,B=p.B};
foreach(var a in alist)
{
......
}
--------------------编程问答-------------------- 那怎么做是正确的?我的源码如下:
public IList<Activity> ListActivitiesByGroupName(string ActivityGroupName)
        {
            var activities = ...
                             select new
                             {
                                 ActivityGroupName = ag.ActivityGroupName,
                                 ActivityName = a.ActivityName,
                                 BurnCalories = a.BurnCalories
                             };

            return activities.ToList();

        } --------------------编程问答-------------------- 不要select new ...,要select一个Activity类型的对象。
另外,如返回的对象不直接支持增删改,就不要返回IList<Activity>,应该返回IEnumerable<Activity>或ReadOnlyCollection<Activity>。
--------------------编程问答-------------------- 类形不配。
return activities.ToList();
改为

IList<Activity> tempList = new ILList<Activity>();
foreach(var temp in activities)
{
    tempList.Add(temp);
}

return tempList; --------------------编程问答-------------------- 看错了,
select new 产生的类形,不是Activity类型。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,