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