2011-10-29 11 views
1

FINDを使用して、リスト内のある項目と他の項目の別の項目との一致を検索する代理人を使用したいと思います。C#と代理人

私は次のように動作するコードを持っている: -

Type a = listname.Find(delegate(Type b)) 
{ 
     return 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 
} 

としてb.list.item一致している私はそのようにそれをコーディングすることができないようタイプaを返す前に複数の条件をチェックします。

+0

をC#の論理演算子についてこれをチェックしてください:http://msdn.microsoft.com/en-us/library/6a71f45d%28v=80/29.aspx –

+0

最初の例*実際の作業コード*はありますか?私はそれがコンパイルされないので尋ねます、最後には ');がありません。また、あなたがしたいことの記述はあなたのコードの内容と一致しません。私はあなたのコードが "私は1つのリストで見ている項目がパラメータとして渡された場合、その他のリストの項目のいずれかと等しい場合、私はアイテムを返すしたい見つめている"。しかし、あなたのコードはそれをしません。 –

+0

つまり、あなたのコードは '.Find(delegate(item 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 

あなたはAND演算子の代わりに、二つの条件を組み合わせることセミコロン必要

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

する必要があります:私はあなたが読むべきだと思う

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