2016-12-07 11 views
2

ここに私のコードです。Linqpadで実行することができます。C#キャストリスト<object[]>リストに<customClass>

void Main(){ 

    List<Object> listobj=new List<object>{ 
    new object[]{"A01001","sucess","on"}, 
    new object[]{"A01002","fail","off"}}; 
    listobj.Dump(); 

    var second = listobj.Cast<RowItem>(); 
    second.Dump(); 
} 

public class RowItem { 
    public string GOODS_ID { get; set; } 
    public string AUDIT_STATUS { get; set; } 
    public string APPLY_STATUS { get; set; } 
} 

私はList<RowItem>List<object>を変換したいが、私はキャスト法を使用していたときに、それは誤りcannot convert type 'System.Object[]' to class RowItem

を返すが可能これは、またはこれを達成する別の方法は何ですか?

ありがとうございます。

+0

(間接的に)RowItemオブジェクトに変換しようとしています。それは動作しません。 – DarkKnight

答えて

7

あなたのlistobjのタイプは、多くのレベルで正しくありません。型は、オブジェクト配列として隠されたオブジェクト配列のコレクションです。同じタイプを続行したい場合は、ここで動作するコードがあります。

void Main() 
{ 

    List<Object> listobj = new List<object>{ 
    new object[]{"A01001","sucess","on"}, 
    new object[]{"A01002","fail","off"}}; 
    listobj.Dump(); 

    var second = listobj.Cast<object[]>().Select(l => new RowItem { 
                 GOODS_ID=l[0].ToString(), 
                 AUDIT_STATUS=l[1].ToString(), 
                 APPLY_STATUS=l[2].ToString() 
               }); 
    second.Dump(); 
} 

public class RowItem 
{ 
    public string GOODS_ID { get; set; } 
    public string AUDIT_STATUS { get; set; } 
    public string APPLY_STATUS { get; set; } 
} 
+0

ありがとうございます。私はそれがどのように働くか研究します。 –

+0

あなたもこれを見てみることができますhttp://stackoverflow.com/questions/25075003/convert-array-to-custom-object-list-c-sharp –

関連する問題