一,如果两个类中有大部分的字段相同,需要将其中一个类赋值给另外一个类。
定义Person类:
1 2 3 4 5 6 7 8 9 10 11 | public class Person { public Person(int id,string name,string address) { this.Id = id; this.Name = name; this.Address = address; } public int Id {get; set; } public string Name {get; set; } public string Address {get; set; } } |
定义User类
1 2 3 4 5 | public class User { public int Id {get; set; } public string Name {get; set; } public string Group {get; set; } } |
转换方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public static User ConvertObject(User user,Person person) { PropertyInfo[] userPro = user.GetType().GetProperties(); PropertyInfo[] personPro = person.GetType().GetProperties(); if (userPro.Length>0&&personPro.Length>0) { for (int i = 0; i < userPro.Length; i++) { for (int j = 0; j < personPro.Length; j++) {<br>//判断User的属性是不是的Person中 if (userPro[i].Name == personPro[j].Name && userPro[i].PropertyType == personPro[j].PropertyType) { Object value=personPro[j].GetValue(person,null); //将Person中属性的值赋值给User<br> userPro[i].SetValue(user,value , null); } } } } return user; } |
方法的调用:
1 2 3 4 5 6 7 8 9 10 | static void Main(string[] args) { Person person =new Person(1,"FlyElephant","北京"); User user =new User(); user.Id = 20; user = ConvertObject(user, person); Console.WriteLine("Id:" + user.Id +"Name:" + user.Name +"角色:" + user.Group); System.Console.Read(); }
|