如何将对象的属性映射到列表

Posted

技术标签:

【中文标题】如何将对象的属性映射到列表【英文标题】:How to map properties from an object to a list 【发布时间】:2022-01-01 04:28:55 【问题描述】:

我想将一个类的属性值映射到一个列表

public class category

    public int? categoryACount  get; set;  // 1
    public int? categoryBCount  get; set;  // 2
    public int? categoryCCount  get; set;  // 3
    public int? categoryDCount  get; set;  // 4

public class categoryList

    public string categoryType  get; set;  //categoryA,categoryB,categoryC,categoryD
    public string categoryCode  get; set;  //A,B,C,D
    public string categoryDescription  get; set;  //ADesc,BDesc,CDesk.DDesc
    public string categoryQuantity  get; set;  //1,2,3,4

这里的类结构不同,基于categoryType。我想将它映射到Category 类。每个categoryTypecategoryQuantity 的值将映射到Category 类中的属性。

如果categoryType 是“CategoryA”,则来自categoryQuantity 的值将映射到category 类的categoryACount

【问题讨论】:

categoryList 属性上的 Getter 相当容易编写。你真的想要一个 Setter - 这意味着什么 您应该使用枚举。我还建议您参加编程培训,这将有助于您理解编程概念。 docs.automapper.org/en/latest/… 当我调用 Map() 方法时出现以下错误“对象引用未设置为对象的实例” .ForPath(dest => dest.employees[0].firstName, o => o.MapFrom(src => src.Client.FirstName));问题是错误并没有说明太多 【参考方案1】:

你可以试试这个..

List<categoryList> ocategoryList = new List<categoryList>();
ocategoryList = yourCategoryListData();

category ocategory = new category();
ocategory = yourCategoryData();

foreach (var item in ocategoryList)

    switch (item.categoryType)
    
        case "categoryA":
            item.categoryQuantity = ocategory.categoryACount.ToString();
            break;

        case "categoryB":
            item.categoryQuantity = ocategory.categoryBCount.ToString();
            break;

        case "categoryC":
            item.categoryQuantity = ocategory.categoryCCount.ToString();
            break;

        case "categoryD":
            item.categoryQuantity = ocategory.categoryDCount.ToString();
            break;
    

希望这会奏效。

【讨论】:

以上是关于如何将对象的属性映射到列表的主要内容,如果未能解决你的问题,请参考以下文章

双向将字符串的“虚拟”列表绑定到列

如何将列表值映射到新对象属性

将mysql查询中项目的嵌套列表属性映射到c#对象

如何使用R [list]将列表的名称插入到列中

如果列中存在数据,如何将列名映射到查询响应中?

如何将 Telerik 网格列绑定到作为列表的子数据对象?