C # 4.0 объектно-ориентированные временные ограничения - PullRequest
0 голосов
/ 29 мая 2011

У меня много операторов if внутри цикла for, и я ищу альтернативу, отличную от оператора switch. Что лучше с точки зрения временных ограничений?

Мой код:

anotherlist

foreach(x objx in xlist)
{
if(objx.att1=anotherlist.someatt)
        do something

if(objx.att2=anotherlist.someatt)
        do something

if(objx.att3=anotherlist.someatt)
        do something
...

Это продолжается примерно от 15 до 20 if заявлений.

Кто-нибудь может порекомендовать альтернативу?

1 Ответ

4 голосов
/ 29 мая 2011

У меня есть альтернатива, хотя она не будет лучше с точки зрения времени, но она может быть чище.

У вас может быть словарь, ключи словаря - это все возможности anotherlist.someatt, а значения являются идентификаторами функций «что-то сделать».

Тогда вы могли бы просто сделать DictionaryName[objx.att1].invoke(params) вместо всех этих if(condition...).

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