使用string作为lambda表达式中的属性c#

时间:2016-11-08 10:01:56

标签: c# lambda

我有一个方法,我将字符串和列表传递给。我想要实现的是将字符串转换为lambda表达式属性。

private someMethod(string myTypeString, List<Values> typeList)
{
    foreach(var type in typeList.Where(x => x."myTypeString" > DateTime.Now))
    {
        //do my loop
    }
}

有办法吗?

2 个答案:

答案 0 :(得分:2)

您可以尝试使用 Reflection

transition

答案 1 :(得分:1)

  1. 在某处创建此方法。
  2.     public static object GetPropValue(object src, string propName)
        {
            return src.GetType().GetProperty(propName).GetValue(src, null);
        }
    
    1. 在lambda表达式中使用该方法
    2.     private someMethod(string myTypeString, List typeList)
          {
              foreach(var type in typeList.Where(x => (DateTime)GetPropValue(x, myTypeString) > DateTime.Now))
              {
                  //do my loop
              }
          }