你用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)
{
......
}

解决方案 »

  1.   

    那怎么做是正确的?我的源码如下:
    public IList<Activity> ListActivitiesByGroupName(string ActivityGroupName)
            {
                var activities = ...
                                 select new
                                 {
                                     ActivityGroupName = ag.ActivityGroupName,
                                     ActivityName = a.ActivityName,
                                     BurnCalories = a.BurnCalories
                                 };            return activities.ToList();        }
      

  2.   

    不要select new ...,要select一个Activity类型的对象。
    另外,如返回的对象不直接支持增删改,就不要返回IList<Activity>,应该返回IEnumerable<Activity>或ReadOnlyCollection<Activity>。
      

  3.   

    类形不配。
    return activities.ToList();
    改为IList<Activity> tempList = new ILList<Activity>();
    foreach(var temp in activities)
    {
        tempList.Add(temp);
    }return tempList;
      

  4.   

    看错了,
    select new 产生的类形,不是Activity类型。