【问题标题】:How to convert a dynamic list into list<Class>?如何将动态列表转换为 list<Class>?
【发布时间】:2016-03-22 08:50:39
【问题描述】:

我正在尝试将动态列表转换为类模型(产品)列表。这就是我的方法的样子:

public List<Products> ConvertToProducts(List<dynamic> data)
{
    var sendModel = new List<Products>();

    //Mapping List<dynamic> to List<Products>
    sendModel = data.Select(x =>
    new Products
    {
        Name = data.GetType().GetProperty("Name").ToString(),
        Price = data.GetType().GetProperty("Price").GetValue(data, null).ToString()
    }).ToList();
}

我已经尝试了这两种方法来获取属性值,但它给了我空错误,说这些属性不存在或它们为空。

Name = data.GetType().GetProperty("Name").ToString(),

Price = data.GetType().GetProperty("Price").GetValue(data, null).ToString()

这就是我的模型类的样子:

public class Products
{
    public string ID { get; set; }
    public string Name { get; set; }
    public string Price { get; set; }
}

有人可以告诉我我缺少什么吗?提前致谢。

【问题讨论】:

  • 顺便说一句,创建一个新的List&lt;Products&gt;,分配一个对sendModel的引用,然后给sendModel分配一个不同的值而不使用之前的值是没有意义的。

标签: list c#-4.0 arraylist dynamic


【解决方案1】:

您目前正尝试从data 获取属性,这是您的列表 - 而您忽略了x,这是列表中的项目。我怀疑你想要:

var sendModel = data
    .Select(x => new Products { Name = x.Name, Price = x.Price })
    .ToList();

可能想在属性结果上调用ToString(),但不清楚原始数据中的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多