2011-10-29 31 views
1

我想使用一個代理,它允許我通過使用FIND查找另一個列表中的另一個項目與一個列表中的一個項目匹配。C#和代表

我已經得到了代碼工作如下: -

Type a = listname.Find(delegate(Type b)) 
{ 
     return list.item == b.list.item; 
} 

如果列表項B中的項目相匹配,那麼它在返回的項目。這是工作正常,但是我現在要檢查我只返回如果list.item多個項目匹配b.list.item如

Type a = listname.Find(delegate(Type b)) 
{ 
     return list.item == b.list.item; 
       list.anotheritem == b.list.anotheritem 
} 

我似乎無法給它的代碼,以便它在返回Type a之前檢查多個條件。

+0

我想你應該閱讀關於C#的邏輯運算符。檢查了這一點:http://msdn.microsoft.com/en-us/library/6a71f45d%28v=vs.80%29.aspx –

+0

是第一個例子*實際工作代碼*?我問,因爲它不會編譯,它錯過了'';''在最後。此外,你想做什麼的描述與你的代碼的內容不匹配。我希望你的代碼能夠讀取類似於「如果我在一個列表中查看的項目,作爲參數傳入,等於該列表中的任何項目,那麼我想返回該項目看着」。但是你的代碼並沒有這樣做。 –

+0

換句話說,我希望你的代碼像'.Find(delegate(Type item){return b.list.Any(i => i == item);});' –

回答

3
Type a = listname.Find(delegate(Type b) 
{ 
     return list.item == b.list.item && 
       list.anotheritem == b.list.anotheritem; 
} 
+1

刪除了;爲你;) – RvdK

+0

哎呀非常感謝... @ PoweRoy –

2

使用邏輯AND運算符,& &。

 return list.item == b.list.item && 
      list.anotheritem == b.list.anotheritem 
2
 return list.item == b.list.item; 
      list.anotheritem == b.list.anotheritem 

應該

 return list.item == b.list.item && 
      list.anotheritem == b.list.anotheritem; 
2

你需要一個AND運營商,而不是一個分號兩個條件結合起來:

Type a = listname.Find(delegate(Type b) 
{ 
     return list.item == b.list.item 
       && list.anotheritem == b.list.anotheritem; 
}