C # и делегаты - PullRequest
       21

C # и делегаты

1 голос
/ 29 октября 2011

Я хочу использовать делегата, который позволяет мне искать совпадения для одного элемента в списке с другим элементом в другом списке с помощью FIND.

Я получил код, работающий следующим образом: -

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

Если элемент списка соответствует элементу в b, то он возвращает элемент в a.Это работает нормально, однако теперь я хочу проверить, что я возвращаю только, если более одного элемента в list.item соответствует b.list.item, например

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

Я не могу кодироватьтак что он проверяет наличие более одного условия перед возвратом типа a.

Ответы [ 4 ]

3 голосов
/ 29 октября 2011
Type a = listname.Find(delegate(Type b) 
{ 
         return list.item == b.list.item &&
                 list.anotheritem == b.list.anotheritem;
} 
2 голосов
/ 29 октября 2011
     return list.item == b.list.item;
             list.anotheritem == b.list.anotheritem

должно быть

     return list.item == b.list.item &&
             list.anotheritem == b.list.anotheritem;
2 голосов
/ 29 октября 2011

Вам нужен оператор AND вместо точки с запятой, чтобы объединить два условия:

Type a = listname.Find(delegate(Type b)
{
         return list.item == b.list.item 
                && list.anotheritem == b.list.anotheritem;
}
2 голосов
/ 29 октября 2011

Используйте логический оператор AND, &&.

     return list.item == b.list.item && 
            list.anotheritem == b.list.anotheritem
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...