如何在where语句中使用动态字段名?
示例:我可以使用,
MyList.Where(x => x.Name == "MyName");
但是如何使用呢?
string MyField = "Name";
MyList.Where(x => MyField == "MyName");
最佳答案
您可以使用 System.Reflection
中的 PropertyInfo
并使用其 GetValue()
方法:)
PropertyInfo inf = typeof(YourClass).GetProperty("PropertyName");
MyList.Where(x => inf.GetValue(x) == "MyName");
为了让它工作,变量Name
当然应该是一个Property
,如下所示:
public string Name { get; set; }
希望有帮助:)
关于c# - .Where 语句中的 LINQ 动态字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32941471/