如何将对象的属性映射到列表
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
类。每个categoryType
的categoryQuantity
的值将映射到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;
希望这会奏效。
【讨论】:
以上是关于如何将对象的属性映射到列表的主要内容,如果未能解决你的问题,请参考以下文章