我有一个类对象的列表
可以说这个类的结构是这样的
class DataEntity
{
public string col1 { get; set; }
public string col2 { get; set; }
public string col3 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以名单将是
List<DataEntity> list = new List<DataEntity>
Run Code Online (Sandbox Code Playgroud)
所以这是我的问题,我需要遍历列表并修改特定属性的值..但我不知道在运行时需要修改什么属性。
所以可以说有一个方法可以转换列表,并且要修改的属性名称作为字符串值传入
public List<DataEntity> Convert (List<DataEntity> list, string propertyName, string appendedValue)
{
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何遍历该列表,并为输入的 propertyName 将 appendedValue 附加到该属性值
我知道我可以使用这样的反射来获取属性值
Type type = dataEntity.GetType();
foreach (PropertyInfo pi in type.GetProperties())
{
}
Run Code Online (Sandbox Code Playgroud)
但我不确定如何利用它来定位特定属性以在运行时追加。
你应该使用这样的东西:
PropertyInfo propertyInfo;
foreach (YourClass C in list)
{
propertyInfo = C.GetType().GetProperty(propertyName);
propertyInfo.SetValue(C, Convert.ChangeType(appendedValue, propertyInfo.PropertyType), null);
}
return list;
Run Code Online (Sandbox Code Playgroud)