在c#中动态选择Ienumerable属性

本文关键字:Ienumerable 属性 选择 动态 | 更新日期: 2023-09-27 18:20:32

我正在尝试执行以下断言

Assert.AreEqual<string>(A.Drivers[i].FirstName, Response);

Drivers是IEnumerable集合,它有其他属性,如姓氏、中间名等。我想动态选择Drivers的属性,这样就可以用一种方法完成,而不是为每个属性编写不同的方法

在c#中动态选择Ienumerable属性

你可以使用反射:

获取Drivers类的字符串属性

var driverProperties = typeof(Drivers).GetProperties().Where(i => i.PropertyType.Equals(typeof(string)));

然后迭代属性

foreach (var property in driverProperties)
        {
            Assert.AreEqual<string>(property.GetValue(A.Drivers[i]), Response);
        }

对Dano建议的轻微更改。获取一个特定属性

var prop = typeof(Drivers).GetProperty("propName");
var val = (string)prop.GetValue(A.Drivers[i]);