C#如何将List <object []>转换为List <customClass>

Yic*_*Lin 2 c# linq

这是我的代码.可以在Linqpad中运行.

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; }
}
Run Code Online (Sandbox Code Playgroud)

我想转换List<object>List<RowItem>,但当我使用cast方法时,它返回一个错误cannot convert type 'System.Object[]' to class RowItem

这是可能的,还是有另一种方法来实现这一目标?

谢谢.

sat*_*esh 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; }
}
Run Code Online (Sandbox Code Playgroud)