3

GetDataオブジェクトを返す呼び出しを呼び出しIQueryableます。次のLINQSelectManyを使用してフィルターで除外し、返す必要のあるフィールドを選択するとList<MyDataType>、次のエラーが発生します

System.Collections.Generic.List<AnonymousType#1>タイプを暗黙的に変換することはできませんSystem.Collection.Generic.List<MyDataType>

これが私のコードです

List<CASES> caseList = cs.GetData(foiaNumber).ToList();

Dictionary<int, string> NameDict = 
    caseList.ToDictionary(cases => cases.UID, cases =>     cases.NAME);


List<MyDataType> bindingGrdList = 
    caseList.SelectMany(x => x.ListObject)
        .Select(n => 
            new { 
                   SUBMITTER_NAME = NameDict[n.UID], 
                   NUMBER = n.UID, 
                   DATE_SENT = n.DATE_SENT, 
                   DATE_DUE = n.DATE_DUE, 
                   FINAL_DETERMINATION = n.FINAL_DETERMINATION 
                 }).ToList();

AnonymousTypeエラーを修正するにはどうすればよいですか?ありがとう。

4

3 に答える 3

11

交換

n => new { SUBMITTER_NAME = NameDict[n.UID], NUMBER = n.UID,
    DATE_SENT = n.DATE_SENT, DATE_DUE = n.DATE_DUE,
    FINAL_DETERMINATION = n.FINAL_DETERMINATION }

n => new MyDataType { SUBMITTER_NAME = NameDict[n.UID], NUMBER = n.UID,
    DATE_SENT = n.DATE_SENT, DATE_DUE = n.DATE_DUE,
    FINAL_DETERMINATION = n.FINAL_DETERMINATION }
于 2012-12-03T16:44:13.003 に答える
0

var代わりに使用してみてください:

var bindingGrdList = caseList.SelectMany(x => x.ListObject).Select(n => new { SUBMITTER_NAME = NameDict[n.UID], NUMBER = n.UID, DATE_SENT = n.DATE_SENT, DATE_DUE = n.DATE_DUE, FINAL_DETERMINATION = n.FINAL_DETERMINATION }).ToList();

これにより、コードからタイプが推測されます。これは、匿名タイプに必要なものです。

于 2012-12-03T16:43:27.687 に答える
0

投影を匿名タイプからに変更する必要がありますMyDataTypeSelectこれを行うには、次のように変更する必要があります。

List<MyDataType> bindingGrdList = 
    caseList.SelectMany(x => x.ListObject)
        .Select(n => 
            new MyDataType 
                { 
                   SUBMITTER_NAME = NameDict[n.UID], 
                   NUMBER = n.UID, 
                   DATE_SENT = n.DATE_SENT, 
                   DATE_DUE = n.DATE_DUE, 
                   FINAL_DETERMINATION = n.FINAL_DETERMINATION 
                 }).ToList();

注:これらのプロパティはの正しいプロパティであり、デフォルトのパラメーターなしコンストラクターがあると想定してMyDataTypeMyDataTypeます。

于 2012-12-03T16:49:30.247 に答える