2009-09-16 101 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