Нужна помощь с использованием Predicate в Generics - PullRequest
0 голосов
/ 01 июня 2011

В настоящее время я использую метод, который возвращает мне объект ICommand на основе сравнения строк, полученных из предоставленного ключа.

public ICommand getCommand(string mCommand)
        {
            foreach (object obj in objCommandList)
            {
                ICommand command = (ICommand)obj;
                if (command.m_strCommandName == mCommand)
                {
                    return command;
                }
            }
        return null;

        }

, где objCommandList содержит объекты ICommand.

Теперь я хочу улучшить свой код или, скорее, попробовать альтернативный поиск в коллекции, например, с помощью такой опции, как Предикат делегат при извлечении отфильтрованного объекта из коллекции.

т.е.

objCommandList.Find(Predicate syntax which is needed here...)

Может кто-нибудь помочь мне с этим.

1 Ответ

0 голосов
/ 01 июня 2011

Вы можете попробовать что-то вроде этого:

objCommandList.Find(delegate(Icommand command) { return command.m_strCommandName == mCommand; });

или

objCommandList.Find(c => c.m_strCommandName == mCommand);
...