我有一个扩展列表类:转换输出()列出<T>子
public class MyObjectList : List<MyObject>
{
...
}
目前,有一个LINQ语句通过键值组:
MyObjectList objects = new MyObjectList(); //initializes and loads list
var objectsByKey = objects.GroupBy(obj => obj.MyKey)
.Select(objs => new {MyKey = objs.Key, MyObjs = objs.ToList()})
.ToList();
在输出中,MyObjs的类型为List < MyObject>,并列出了正确分组的对象。
当我尝试将它转换为MyObjectList时,MyObjs结束为空。
var objectsByKey = objects.GroupBy(obj => obj.MyKey)
.Select(objs => new {MyKey = objs.Key, MyObjs = objs.ToList() as MyObjectList})
.ToList();
我怎样才能让MyObjs成为MyObjectList类型的对象分组对象?
从'名单派生类'是一个不好的做法,正是这个原因,等等。如果你需要你的班级像列表一样行事,请执行'IList '。 –
@ DanielMann点的冗长讨论发现在这里:http://stackoverflow.com/questions/21692193/why-not-inherit-from-listt – Ocelot20