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