2

リストのセットをリストに保存しようとしていますが、プログラマーに <> リストが保持するデータ型と、リストに含まれるリストを強制するため、リストをマスターに追加できないようですリストを含むリストを追加しても、正しいタイプのリストを追加していないというエラーは表示されません。

public List<MyObject1> List1{ get; set; }
public List<MyObject2> List2{ get; set; }
List<List<object>> myMasterList; //nested type definitions here

public SetUpLists()
{
    List1= new List<MyObject1>();
    List2= new List<MyObject2>();
    myMasterList= new List<List<object>>(); //nested type definitions here

    //ERROR ON NEXT 2 LINES
    'System.Collections.Generic.List<System.Collections.Generic.List<object>>.Add(System.Collections.Generic.List<object>)' has some invalid arguments.

    myMasterList.Add(List1);
    upgradeList.Add(List2);
}

したがって、エラー レポートを見ると、機能しているように見えます。私はそれを作ってみましたList<List<object>>が、クラスの親クラスではMyObject1ありませんMyObject2: List<List<MyObjectMaster>>- 役に立たないので、同じエラーが発生します。

どんな助けでも大歓迎です。

4

2 に答える 2

3

myMasterList は型要素List<List<object>>のみを受け入れるとして型指定されます。List<object>MyObject1 は object から派生していますが、List<MyObject1>と同等ではありませんList<object>

これを回避するには、 myMasterList を として使用し、オブジェクトにアクセスするたびList<object>にオブジェクトをキャストするか、このような Linq クエリを使用して、個々のリストを挿入する前にキャストします。List<object>List<object>

myMasterList.Add(List1.Select(item => item as Object).ToList());
于 2013-07-13T23:17:30.233 に答える