如何获取具有特定名称的所有属性并创建List<;KeyValuePair<;字符串,字符串>>;

本文关键字:gt lt 字符串 创建 List 属性 KeyValuePair 获取 何获取 定名称 | 更新日期: 2023-09-27 18:20:01

我需要进行以下某种反射:

  1. 从一个对象中获取所有属性名称,然后只选择带有"角色"字样的名称
  2. 一旦我拥有了所有属性,就创建一个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>?键是列或属性名称,值是属性值

如何获取具有特定名称的所有属性并创建List<;KeyValuePair<;字符串,字符串>>;

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的情况下写作,因此可能会出现一两个语法错误,但希望这能为您指明正确的方向。