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

标签 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; }
}

我要转换 List<object>List<RowItem> ,但是当我使用 cast 方法时,它返回错误 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; }
}

关于C# 如何将 List<object[]> 转换为 List<customClass>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41008347/

相关文章:

LINQ POI 邻近度

c# - 'Advertisement' 类型存在于 'UnityEngine.Advertisements.Editor' 中

c# - 我应该使用静态类还是结构以外的其他东西?

c# - 系统.IO.包装

c# - Entity Framework 核心包含(...其中)

c# - 如何使用 Linq 获取随机对象

c# - 如何测试事件触发

c# - Linq - 在一个查询中计算多个平均值

c# - 动态构建查询

linq - 如何在Lucene.Net.Linq中添加文档?