2015-10-05 89 views
2

如何在where語句中使用動態字段名?LINQ動態字段在.Where語句中

例如:我可以使用,

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

但如何像這樣使用?

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

回答

4

你可以使用PropertyInfoSystem.Reflection並利用其GetValue()方法:)

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

對於它的工作,當然變量Name應該是Property像這樣:

public string Name { get; set; } 

希望能幫到:)

+0

感謝您的回覆,請問您能寫出示例代碼嗎? –

+0

如果確實有幫助,請做標記爲答案:) – faztp12