where语句中的LINQ动态字段

本文关键字:动态 字段 LINQ 语句 where | 更新日期: 2023-09-27 18:15:55

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

示例:我可以使用

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

可是这样怎么用呢?

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

where语句中的LINQ动态字段

您可以使用System.Reflection中的PropertyInfo并使用其GetValue()方法:)

PropertyInfo inf = typeof(YourClass).GetProperty("PropertyName");
MyList.Where(x => inf.GetValue(x) == "MyName");

要使其工作,当然变量Name应该是Property,如下所示:

public string Name { get; set; } 

希望有帮助