在 C# 中从另一个列表和其他来源构建列表
Building a List from another list and other sources in C#
我有一个包含 10 个字段的 ClassA
并且下面的列表填充了 100 条记录。
List<ClassA> abc = new List<ClassA>();
我有另一个 class ClassB
有 12 个字段,其中 10 个字段与 Class 相同,还有 2 个额外的字段可以说是硬编码的,即 field11
和 field12
。 属性 ClassA 和 ClassB 的名称相同。
我已经尝试循环 ClassA
列表并在循环内构建 ClassB
对象,并继续添加到 ClassB
的列表中并增加 2 个列。
但是有没有更好的方法来实现这一点?
是的,您可以使用自动映射库。喜欢 AutoMapper or Mapster
他们可以通过属性命名约定映射您的实体。您还可以为每个映射设置特定规则。
请在上面的链接中查找文档。
你可以使用 select :
var def = abc.Select(a => new ClassB{
field1 = a.field1,
field2 = a.field2,
....
field11 = default,
field12 = default,
}).ToList()
我有一个包含 10 个字段的 ClassA
并且下面的列表填充了 100 条记录。
List<ClassA> abc = new List<ClassA>();
我有另一个 class ClassB
有 12 个字段,其中 10 个字段与 Class 相同,还有 2 个额外的字段可以说是硬编码的,即 field11
和 field12
。 属性 ClassA 和 ClassB 的名称相同。
我已经尝试循环 ClassA
列表并在循环内构建 ClassB
对象,并继续添加到 ClassB
的列表中并增加 2 个列。
但是有没有更好的方法来实现这一点?
是的,您可以使用自动映射库。喜欢 AutoMapper or Mapster 他们可以通过属性命名约定映射您的实体。您还可以为每个映射设置特定规则。 请在上面的链接中查找文档。
你可以使用 select :
var def = abc.Select(a => new ClassB{
field1 = a.field1,
field2 = a.field2,
....
field11 = default,
field12 = default,
}).ToList()