1:单个实体转换
public static T2 ConvertToModel<T1, T2>(T1 source)
{
T2 model = default(T2);
PropertyInfo[] pi = typeof(T2).GetProperties();
PropertyInfo[] pi1 = typeof(T1).GetProperties();
model = Activator.CreateInstance<T2>();
foreach (var p in pi)
{
foreach (var p1 in pi1)
{
if (p.Name == p1.Name)
{
p.SetValue(model, p1.GetValue(source, null), null);
break;
}
}
}
return model;
}
2:泛型转换:
public static List<T2> ConvertToModel<T1, T2>(List<T1> list)
{
var t2 = new List<T2>();
foreach (var item in list)
{
T2 model = default(T2);
PropertyInfo[] pi = typeof(T2).GetProperties();
PropertyInfo[] pi1 = typeof(T1).GetProperties();
model = Activator.CreateInstance<T2>();
foreach (var p in pi)
{
foreach (var p1 in pi1)
{
if (p.Name == p1.Name)
{
p.SetValue(model, p1.GetValue(item, null), null);
break;
}
}
}
t2.Add(model);
}
return t2;
}
C#实体转换一个新实体
最新推荐文章于 2024-08-20 20:26:43 发布
该博客介绍了如何使用C#编程实现泛型方法,将单个对象或对象列表从一种类型转换为另一种类型。通过反射机制,匹配源对象和目标对象的属性名称,实现属性值的复制,从而完成转换过程。
474

被折叠的 条评论
为什么被折叠?



