如何获取具有特定名称的所有属性并创建List<;KeyValuePair<;字符串,字符串>>;
本文关键字:gt lt 字符串 创建 List 属性 KeyValuePair 获取 何获取 定名称 | 更新日期: 2023-09-27 18:20:01
我需要进行以下某种反射:
- 从一个对象中获取所有属性名称,然后只选择带有"角色"字样的名称
- 一旦我拥有了所有属性,就创建一个
List<KeyvaluePair<string,string>>
,其中键将是属性名称,值将来自对象属性
我想用linq和/或lambda表达式可以很容易地做到这一点,但不知道如何做到。
到目前为止,我的代码是:
SyncJobs_Result job = (SyncJobs_Result)entity.Entity;
var properties = typeof(SyncJobs_Result ).GetProperties(BindingFlags.Static | BindingFlags.Public).Select(p => p.Name.Contains("Role"));
如何在此基础上构建List>?键是列或属性名称,值是属性值
SyncJobs_Result job = (SyncJobs_Result)entity.Entity;
var properties = typeof(SyncJobs_Result)
.GetProperties(BindingFlags.Static | BindingFlags.Public)
.Where(p => p.Name.Contains("Role") && p.PropertyType == typeof(string))
.Select(p => new KeyValuePair<string, string>(p.Name, p.GetValue(job, null) as string))
.ToList();
在没有Visual Studio的情况下写作,因此可能会出现一两个语法错误,但希望这能为您指明正确的方向。