这是我的代码。可以在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; }
}


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

这可能吗,或者还有另一种方法可以做到这一点?

谢谢。

最佳答案

您的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; }
}

10-01 22:00
查看更多