Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> foreach and for 
:(
    Опции темы
Orseida
Дата 7.4.2008, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 14.6.2007

Репутация: нет
Всего: нет



Всем привет! Извините за глупый вопрос. Я пока не сильна в программировании. Задача следующая: мне нужно, чтобы два цикла начинали выполняться одновременно. Логическая схема: для каждого элемента х из Х и для у=0; у<Y;y++ выполняется ......
Код:
Код


foreach( SPListItem Doc in collListItemPub) AND for( j=0;j<oListRub.Items.Count; j++)
{
................
};


Вопрос в следующем: что нужно написать вместо AND? && не подходит. Как это вообще оформить?

Спасибо за терпение.
PM MAIL   Вверх
teso
Дата 7.4.2008, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 25.3.2008

Репутация: нет
Всего: нет



Может тебе нужно вложенный цикл делать?
Код

for(int i = 0;i<100;i++)
{
for(int j=0;j<100;j++)
{
................
}
}


Это сообщение отредактировал(а) teso - 7.4.2008, 15:35
PM MAIL   Вверх
Orseida
Дата 7.4.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 14.6.2007

Репутация: нет
Всего: нет



Нет, загвоздка как раз в том, что мне не нужно делать вложенный цикл. Если я делаю вложенный цикл, то для одного элемента верхнего цикла пробегаются все элементы вложенного, а мне это как раз и  не подходит.

Это сообщение отредактировал(а) Orseida - 7.4.2008, 15:43
PM MAIL   Вверх
vponomarov
Дата 7.4.2008, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 2
Всего: 12



Orseida, ну значит тебе нужно выполнить два цикла посследовательно.
если и это не подходит, то возможно стоит более детально объяснить задачу smile 


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
mr.DUDA
Дата 7.4.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Так?
Код
int j = 0;
foreach(SPListItem Doc in collListItemPub)
{
     if (j >= oListRub.Items.Count) break;

     // тело цикла
     ...

     j++;
}


Добавлено через 2 минуты и 19 секунд
Можно и без форич, если у collListItemPub есть индексатор:
Код
for (int i = 0, j = 0; i < collListItemPub.Count && j < oListRub.Items.Count; i++, j++)
{
     SPListItem Doc = collListItemPub[i];

     ...
}



--------------------
user posted image
PM MAIL WWW   Вверх
Orseida
Дата 7.4.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 14.6.2007

Репутация: нет
Всего: нет



Сейчас опробую. Спасибо.
PM MAIL   Вверх
Orseida
  Дата 7.4.2008, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 14.6.2007

Репутация: нет
Всего: нет



Гораздо лучше! smile
Еще раз спасибо!

PM MAIL   Вверх
sobik
Дата 7.4.2008, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 21.3.2008
Где: Киев, Украина.

Репутация: 1
Всего: 1



Собственно, схожий вопрос: 
Есть некий ArrayList arlist, в котором сохраняються обьекты двух классов - MyClass1 i MyClass2. В первом определеy метод МуМethod1, во втором MyMethod2. Нужно вызвать для каждого обьекта в arliste один из этих двух методов, в зависимости от класса. Как это сделать проще всего? Возможно ли это сделать за 1 проход цикла?
PM MAIL   Вверх
mr.DUDA
Дата 7.4.2008, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



sobik, в первом приближении будет так:

Код
foreach (object obj in myArrayList)
{
      if (obj is MyClass1)
      {
            MyClass1 obj1 = (MyClass1)obj;
            
            // ...
      }
      else if (obj is MyClass2)
      {
            MyClass2 obj2 = (MyClass2)obj;
            
            // ...
      }  
}



--------------------
user posted image
PM MAIL WWW   Вверх
jonie
Дата 8.4.2008, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



а можно сделать ооп-шнуто?
Код

interface IMethodEx
{
  public void ExecMethod();
}

class MyClass1Ex : IMethodEx, MуClass1
{
 public void ExecMethod()
 {
    this.Method1();
 }
}

class MyClass2Ex : IMethodEx, MуClass2
{
 public void ExecMethod()
 {
    this.Method2();
 }
}

foreach(IMethodEx m in myArrayList)
{
   m.ExecMethod();
}

?)
хотя на любителей)

Это сообщение отредактировал(а) jonie - 8.4.2008, 01:07


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
mr.DUDA
Дата 8.4.2008, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



jonie, т.к. ArrayList хранит object-ы, может отвалиться в строке 24 если попадётся объект не реализующий интерфейс. Тогда уже List<> лучше юзать.  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
Rififi
Дата 8.4.2008, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: нет
Всего: 36



sobik, 
запихнуть разнородные обьекты в контейнер и потом пытаться с ними работать единообразно - обычно говорит о кривизне проектироаня, что в конечным итоге приводит к костылям, как в примере mr.DUDA
Почитай Гради Буча. или что-нибудь аналогичное для c#
PM MAIL   Вверх
vponomarov
Дата 8.4.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 2
Всего: 12



Rififi, угу, и вообще лучше использовать строгую типизацию.
тогда таких проблем не будет.


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
sobik
Дата 8.4.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 21.3.2008
Где: Киев, Украина.

Репутация: 1
Всего: 1



2Rififi - как Вы посоветуете поступить в таком случае: 
У меня постоянно создаються обьекты разных типов на этапе создания програмы(например, их список записан в ХМЛ). Для каждого из них я должен вызвать соответствующий метод, в зависимости от типа.
PM MAIL   Вверх
mr.DUDA
Дата 8.4.2008, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



sobik, есть возможность унаследовать от базового типа или хотя бы реализовать общий интерфейс? (как в примере jonie)


--------------------
user posted image
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0588 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.