2016-12-07 66 views
2

這裏是我的代碼。可以在Linqpad中運行。C#如何投入列表進入列表<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<object>List<RowItem>,但是當我使用鑄造法,它返回一個錯誤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 –