LINQ动态字段在.Where语句中

时间:2015-10-05 04:51:14

标签: c#

如何在where语句中使用动态字段名称?

示例:我可以使用,

MyList.Where(x => x.Name == "MyName");

但如何使用?

string MyField = "Name";
MyList.Where(x => MyField == "MyName");

1 个答案:

答案 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; } 

希望它有所帮助:)