0

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

  1. 从对象中获取所有属性名称,并仅选择带有单词 Role 的对象。
  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> 呢?键是列或属性名称,值是属性值

4

1 回答 1

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

于 2013-06-26T11:23:33.770 回答