| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > foreach and for |
| Автор: Orseida 7.4.2008, 15:19 | ||
| Всем привет! Извините за глупый вопрос. Я пока не сильна в программировании. Задача следующая: мне нужно, чтобы два цикла начинали выполняться одновременно. Логическая схема: для каждого элемента х из Х и для у=0; у<Y;y++ выполняется ...... Код:
Вопрос в следующем: что нужно написать вместо AND? && не подходит. Как это вообще оформить? Спасибо за терпение. |
| Автор: teso 7.4.2008, 15:32 | ||
Может тебе нужно вложенный цикл делать?
|
| Автор: Orseida 7.4.2008, 15:42 |
| Нет, загвоздка как раз в том, что мне не нужно делать вложенный цикл. Если я делаю вложенный цикл, то для одного элемента верхнего цикла пробегаются все элементы вложенного, а мне это как раз и не подходит. |
| Автор: vponomarov 7.4.2008, 15:49 |
| Orseida, ну значит тебе нужно выполнить два цикла посследовательно. если и это не подходит, то возможно стоит более детально объяснить задачу |
| Автор: mr.DUDA 7.4.2008, 15:54 | ||||
Так?
Добавлено через 2 минуты и 19 секунд Можно и без форич, если у collListItemPub есть индексатор:
|
| Автор: Orseida 7.4.2008, 15:59 |
| Сейчас опробую. Спасибо. |
| Автор: Orseida 7.4.2008, 16:16 |
| Гораздо лучше! Еще раз спасибо! |
| Автор: sobik 7.4.2008, 16:39 |
| Собственно, схожий вопрос: Есть некий ArrayList arlist, в котором сохраняються обьекты двух классов - MyClass1 i MyClass2. В первом определеy метод МуМethod1, во втором MyMethod2. Нужно вызвать для каждого обьекта в arliste один из этих двух методов, в зависимости от класса. Как это сделать проще всего? Возможно ли это сделать за 1 проход цикла? |
| Автор: mr.DUDA 7.4.2008, 17:13 | ||
sobik, в первом приближении будет так:
|
| Автор: jonie 8.4.2008, 01:06 | ||
а можно сделать ооп-шнуто?
?) хотя на любителей) |
| Автор: mr.DUDA 8.4.2008, 10:39 |
| jonie, т.к. ArrayList хранит object-ы, может отвалиться в строке 24 если попадётся объект не реализующий интерфейс. Тогда уже List<> лучше юзать. |
| Автор: Rififi 8.4.2008, 11:49 |
| sobik, запихнуть разнородные обьекты в контейнер и потом пытаться с ними работать единообразно - обычно говорит о кривизне проектироаня, что в конечным итоге приводит к костылям, как в примере mr.DUDA Почитай Гради Буча. или что-нибудь аналогичное для c# |
| Автор: vponomarov 8.4.2008, 13:06 |
| Rififi, угу, и вообще лучше использовать строгую типизацию. тогда таких проблем не будет. |
| Автор: sobik 8.4.2008, 16:33 |
| 2Rififi - как Вы посоветуете поступить в таком случае: У меня постоянно создаються обьекты разных типов на этапе создания програмы(например, их список записан в ХМЛ). Для каждого из них я должен вызвать соответствующий метод, в зависимости от типа. |
| Автор: mr.DUDA 8.4.2008, 17:45 |
| sobik, есть возможность унаследовать от базового типа или хотя бы реализовать общий интерфейс? (как в примере jonie) |
| Автор: sobik 10.4.2008, 14:25 |
| 2mr.Duda:да, так можно сделать |
| Автор: archeg 10.4.2008, 15:02 |
| sobik, если не секрет, что за типы? В таких случаях нужно всегда стремиться к тому что посоветовал mr.DUDA. Ибо при добавлении нового типа в хмл (а я так понимаю, впринципе хмл как раз для того чтобы сделать добавление гибким) - вся гибкость пропадает. Прийдеться прописывать новый if в цикле Если нужно разное количество аргументов, то можно что-то с рефлекшином придумать |