这是我的代码。可以在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
这可能,还是有其他方法可以实现这一目标?
谢谢。
答案 0 :(得分: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; }
}