C#实现获取不同对象中名称相同属性的方法

时间:2022-01-28 18:17:33

本文实例讲述了C#实现获取不同对象中名称相同属性的方法。分享给大家供大家参考。具体如下:

【两个类】

?
1
2
3
4
5
6
7
8
9
10
class demo1
{
 public string Name { get; set; }
 public int Age { get; set; }
}
class demo2
{
 public string Name { get; set; }
 public string Address { get; set; }
}

【初始化数据】

?
1
2
3
4
5
6
7
8
9
List<object> list = new List<object>();
demo1 d11 = new demo1() { Age = 1, Name = "我是demo1的1" };
demo1 d12 = new demo1() { Age = 2, Name = "我是demo1的2" };
demo2 d21 = new demo2() { Name = "我是demo2的1" };
demo2 d22 = new demo2() { Name = "我是demo2的2" };
list.Add(d11);
list.Add(d21);
list.Add(d31);
list.Add(d12);

【两个类都有同一个属性Name,现在遍历list集合,获取出所有的Name值】

?
1
2
3
4
5
6
7
foreach(object o in list)
{
  PropertyInfo pi = o.GetType().GetProperty("Name");
  if (pi != null) {
  Console.WriteLine(pi.GetValue(o,null).ToString());
  }
}

希望本文所述对大家的C#程序设计有所帮助。