2011-09-16 8 views
2

にそれを置くことは、私は以下のクラスを持っていると言う:C#の:親クラスに部分クラスを鋳造し、辞書

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

public partial class Child : Parent { } 

public partial class Cousin : Parent { } 

私はプロパティ1とProperty2を使用してIQueryable<Child>IQueryable<Cousin>を返すメソッドを持っています。

リストを両方ともDictionary<string, List<Parent>>に追加することはできますか?

私が試してみた:

var childList = db.GetChildList() as List<Parent>; 
をしかし、これはnullを返します。

List<Child>を返してリストに追加してから辞書に追加する必要がありますか?

おかげ

+3

db.GetChildList()。キャスト() –

+1

ここでは 'partial'キーワードはどのような目的ですか? 'Child'クラスと' Cousin'クラスの他の部分はコード内にありますか?これは部分クラスの問題よりも共分散問題のように思えます。 – BoltClock

+0

ください。 Dictionary >とは何を意味しますか? –

答えて

8

リストは不変であるので、それは例えば、右入力されたリストである必要がある:

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

GetChildList(..)が意味するもの(EF?)の場合、IQueryable またはIEnumerable

+0

Ahh ... Cast <>を返します。乾杯。 – jzm

0

はいあなたの質問に。理由はList<Child>List<Parent>から派生したものではなく、ChildのみがParentに由来しています。