2011-09-16 30 views
2

说我有以下类:C#:铸造一个分部类的父类,并把它变成一个字典

public class Parent 
{ 
    public Property1 {get;set;} 
    public Property2 {get;set;} 
} 

public partial class Child : Parent { } 

public partial class Cousin : Parent { } 

我已经得到了使用Property1和Property2返回IQueryable<Child>IQueryable<Cousin>方法。

是否可以将两个列表都添加到Dictionary<string, List<Parent>>

我已经试过:

var childList = db.GetChildList() as List<Parent>; 

但这返回null。

我必须返回List<Child>并将它们添加到List之后才将其添加到字典中?

感谢

+3

db.GetChildList()。Cast () –

+1

'partial'关键字在这里有什么用途?你的代码中的“Child”和“Cousin”类是否还有其他部分?这似乎更像是一个协变问题而不是一个部分的类问题。 – BoltClock

+0

请。通过Dictionary >来表达您的意思? –

回答

8

由于名单是不变的,这将需要一个正确类型的列表,例如:

var childList = db.GetChildList().Cast<Parent>().ToList(); 
+0

+1,如果GetChildList(..)是我们的意思(EF?),则返回IQueryable 或IEnumerable

+0

Ahh ... Cast <>。干杯。 – jzm

0

是你的问题。原因是List<Child>不是源自List<Parent>,只有Child源自Parent