使用iEnumerable <t>加入PropertyInfo [],其中每个PropertyInfo.Name等于任何T.variableContent </t>

时间:2013-05-20 15:08:43

标签: linq join reflection ienumerable

我正在使用C#反射,但无法找到解决此问题的方法。

我想加入一个PropertyInfos列表,其中列出的字段名称与T中任何元素的变量中的内容匹配。

解释起来有点复杂,但我希望你明白。

示例:

var listProperties = objetoAtual.GetType().GetProperties().Join(listaRegistros, prop => prop.Name, reg => reg.A_Campo_Registro, ??????)

foreach (PropertyInfo property in listProperties)
{
  lb_propName = property.Name;
}

我尝试在TResult参数中创建一个新的PropertyInfo,但PropertyInfo是抽象的。 我需要创建一个继承PropertyInfo并使用它的自定义类吗?

由于

1 个答案:

答案 0 :(得分:1)

您可以投射到匿名类型(具有您感兴趣的属性)而不是PropertyInfo:

var properties = objetoAtual.GetType().GetProperties().Join(listaRegistros, 
                              prop => prop.Name, 
                              reg => reg.A_Campo_Registro, 
                              (prop, reg) => new { Name = prop.Name });

foreach (var property in properties)
{
   lb_propName = property.Name;
}