2009-09-16 97 views
4

我正在寻找一种方法来自动将对象合法性与lambda表达式内的值列表进行比较。 例如,我有这样的lambda表达式:与lambda表达式内的列表进行比较

List<MyObjectType> myObjectList = GetObjectValues(); 

List<MyObjectType> filterdObjectList = myObjectList.Where(x => x.objectProp == ??a list of values??) 

Basicly我需要"objectProp"后过滤我的对象的列表中可以有多个有效值(注意:我不想用"Foreach"

回答

7
List<MyObjectType> myObjectList = GetObjectValues(); 

List<ValueType> valueList = GetValues(); 

List<MyObjectType> filterdObjectList = 
      myObjectList.Where(x => valueList.Contains (x.objectProp)) 
+2

如果您为'valueList'使用'HashSet '而不是'List ','Contains'调用将会有更好的性能。 – LukeH 2009-09-16 08:22:20

+0

10倍很多!它的工作原理:D – TestSubject09 2009-09-16 08:24:05

+0

如果你有很多值得匹配的地方,请关注卢克的建议。 – 2009-09-16 08:25:03