如何在where语句中使用动态字段名称?
示例:我可以使用,
MyList.Where(x => x.Name == "MyName");
但如何使用?
string MyField = "Name";
MyList.Where(x => MyField == "MyName");
答案 0 :(得分:4)
您可以使用PropertyInfo
中的System.Reflection
并使用其GetValue()
方法:)
PropertyInfo inf = typeof(YourClass).GetProperty("PropertyName");
MyList.Where(x => inf.GetValue(x) == "MyName");
要使其工作,变量Name
当然应该是Property
,如此:
public string Name { get; set; }
希望它有所帮助:)