2011-09-16 68 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