2016-12-07 73 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 –

相关问题