我有一个简单的课程:
class Event {
public string Source { get; set; }
}
然后我有一个这个类的列表:
var list = new List<Event>();
list.Add(new Event { Source="Me" });
list.Add(new Event { Source="You" });
现在我希望在列表中使用&#34; Source&#34;财产设置为&#34;我&#34;。
但我不想像这个列表[0]那样访问这个属性。像这样的资源:
list.Where(o => o.Source == "Me").Single()
我知道我的对象有&#34; Source&#34;属性。但我需要传递一个字符串来获取此属性并进行比较。像这样:
list.Where(o => o.GetType().GetProperty("Source").GetType() == "Me").Single()
显然,这不起作用。 Basicaly我需要能够编写像o.Source == "ME"
这样的比较而不直接引用该属性。
我该怎么做?
答案 0 :(得分:4)
您需要使用GetValue
方法
list.Where(o => o.GetType().GetProperty("Source").GetValue(o, null) == "Me").Single()