Как получить обратный for each?
От: Alexander_fx  
Дата: 08.09.06 11:07
Оценка:
for each dd as mycls in mycollection
next dd

Как полуить обратную последовательность?
Re: Как получить обратный for each?
От: Mab Россия http://shade.msu.ru/~mab
Дата: 08.09.06 11:27
Оценка:
Здравствуйте, Alexander_fx, Вы писали:

Руками. Либо использовать PowerCollections и комбинацию Algorithms.ToArray, Algorithms.Reverse.
RE: Как получить обратный for each?
От: Аноним  
Дата: 08.09.06 12:07
Оценка:
for each dd as mycls in mycollection
next dd

Как полуить обратную последовательность?

на крайний случай можно отсортировать таблицу в обратном порядке и пробежатся по ней


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Как получить обратный for each?
От: Аноним  
Дата: 11.09.06 03:48
Оценка:
ыы вот они недостатки forearch %)
Любое удобство идет за счет мегагерцеф!


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Как получить обратный for each?
От: ie Россия http://ziez.blogspot.com/
Дата: 11.09.06 04:14
Оценка:
Здравствуйте, Nimnul, Вы писали:

N>ыы вот они недостатки forearch %)


недостаток можно найти в любом инструменте
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re: Как получить обратный for each?
От: Красин Россия  
Дата: 11.09.06 04:19
Оценка:
Здравствуйте, Nimnul, Вы писали:

N>ыы вот они недостатки foreach %)


Напиши трактат о невсеприменимости foreach
Re: Как получить обратный for each?
От: Lloyd Россия  
Дата: 11.09.06 05:55
Оценка:
Здравствуйте, Alexander_fx, Вы писали:

A_>for each dd as mycls in mycollection

A_>next dd

A_>Как полуить обратную последовательность?


А зачем непременно foreach? Беги for-ом.
Re: Как получить обратный for each?
От: Аноним  
Дата: 11.09.06 06:38
Оценка: -2
угу поддерживаю for рулит
Любое удобство идет за счет мегагерцеф!


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: Как получить обратный for each?
От: Lloyd Россия  
Дата: 11.09.06 07:35
Оценка: +4
Здравствуйте, Nimnul, Вы писали:

N>угу поддерживаю for рулит


Ну все-таки в 99%-ах случаев он вовсе не рулит. А для оставшегося 1% можно и for использовать.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Как получить обратный for each?
От: Аноним  
Дата: 11.09.06 11:27
Оценка:
for each dd as mycls in mycollection
next dd

Как полуить обратную последовательность?

Добавить в mycollection новый property ReverseOrder as IEnumerable
далее пишем
for each dd as mycls in mycollection.ReverseOrder

Забудьте for как страшный сон.
shura


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Как получить обратный for each?
От: Аноним  
Дата: 11.09.06 12:29
Оценка:
Здравствуйте, erigami, Вы писали:

E>Забудьте for как страшный сон.

Откуда это пошло? И чем foreach принципиально лучше, он же то же самое делает, нет? А если мне через одну надо перебрать, или по условию, на каждый чих по итератору писать?
Re[2]: Как получить обратный for each?
От: pt4h Беларусь http://dzmitryhuba.blogspot.com/
Дата: 11.09.06 12:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, erigami, Вы писали:


E>>Забудьте for как страшный сон.

А>Откуда это пошло? И чем foreach принципиально лучше, он же то же самое делает, нет? А если мне через одну надо перебрать, или по условию, на каждый чих по итератору писать?

Вот во что разворачивается foreach (V v in x) embedded-statement:

{
E e = ((C)(x)).GetEnumerator();
try {
V v;
while (e.MoveNext()) {
v = (V)(T)e.Current;
embedded-statement
}
}
finally {
… // Dispose e
}
}


О самом паттерне (в терминологии Gof Enumerator это Iterator):

Паттерн Iterator
Название и классификация паттерна

Итератор — паттерн поведения объектов.

Назначение
Предоставляет способ последовательного доступа ко всем элементам состав-
ного объекта, не раскрывая его внутреннего представления.


Отсюда и делайте выводы — чем же foreach лучше for.
Re[2]: Как получить обратный for each?
От: RustM Россия  
Дата: 11.09.06 12:48
Оценка: -1
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, erigami, Вы писали:


E>>Забудьте for как страшный сон.

А>Откуда это пошло? И чем foreach принципиально лучше, он же то же самое делает, нет?
Товарищ пересел с C++ или

А>А если мне через одну надо перебрать, или по условию

А чем мешает этому foreach
... << RSDN@Home 1.2.0 alpha rev. 655>>
Re[2]: Как получить обратный for each?
От: Аноним  
Дата: 11.09.06 12:57
Оценка:
for vs. foreach предлагаю создать сайт на эту тему с доменом типа
for.net, foreach.net, forFans.org, foreachFans.org ...

моё мнение нужен и for и foreach) только foreach не всегда можно использовать (к примеру если нужно менять коллекцию), но у него свои плюсы перед for.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Как получить обратный for each?
От: Аноним  
Дата: 11.09.06 13:09
Оценка:
И чем foreach принципиально лучше, он же то же самое делает, нет?
Он принципиально лучше тем, что каждому, кто видит в коде конструкцию foreach очевидно, что она делает.
Ее достаточно трудно использовать с ошибкой.
В то время, как ошибки в использовании конструкции for это классика, синдром плюс минус единица это раз, нужно знать, какое свойство, Count или Length использовать, это два.
А если мне через одну надо перебрать, или по условию, на каждый чих по итератору писать?
Это будет правильно, если создатель коллекции позаботится о типовых методах доступа к ней.
shura


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[3]: Как получить обратный for each?
От: Аноним  
Дата: 11.09.06 14:07
Оценка:
Здравствуйте, pt4h, Вы писали:

P>Назначение

P>Предоставляет способ последовательного доступа ко всем элементам состав-
P>ного объекта, не раскрывая его внутреннего представления.
P>[/q]

P>Отсюда и делайте выводы — чем же foreach лучше for.


И зачем это нужно для работы со списком или массивом? Понятие о "внутреннем представлении" этих объектов мне кажется надуманным, а разработка на каждый чих (например, обратный перебор или перебор с условием) нового итератора — излишней и не продуктивной. А если надо несколько переборов на много элементов с одинаковым условием делать, писать кэширующий итератор или просматривать весь список каждый раз?
Поверьте, я не ругаюсь, я просто не понимаю.
Re[2]: Как получить обратный for each?
От: vitz  
Дата: 11.09.06 14:20
Оценка:
Здравствуйте, erigami, Вы писали:

E>И чем foreach принципиально лучше, он же то же самое делает, нет?

E>Он принципиально лучше тем, что каждому, кто видит в коде конструкцию foreach очевидно, что она делает.
E>Ее достаточно трудно использовать с ошибкой.
E>В то время, как ошибки в использовании конструкции for это классика, синдром плюс минус единица это раз, нужно знать, какое свойство, Count или Length использовать, это два.
E>А если мне через одну надо перебрать, или по условию, на каждый чих по итератору писать?
E>Это будет правильно, если создатель коллекции позаботится о типовых методах доступа к ней.

E>
данное сообщение получено с www.gotdotnet.ru

E>ссылка на оригинальное сообщение

Вот и я ща свое БЕ выскажу...

Да ничем foreach пренципиально не лучше, но только если уважеемые госпада вспомнат чем массив от списка отличается?
и если для перебора списка использовать перегруженый индексатор и произвольный доступ через for...
А для массивов использовать итераторы и foreach...
Вот тогда и получится извращение, и дело не в простоте синтаксиса конструкций или еще чего-то там это и есть особенности внутренней организации
Re[4]: Как получить обратный for each?
От: pt4h Беларусь http://dzmitryhuba.blogspot.com/
Дата: 11.09.06 14:24
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, pt4h, Вы писали:


P>>Назначение

P>>Предоставляет способ последовательного доступа ко всем элементам состав-
P>>ного объекта, не раскрывая его внутреннего представления.
P>>[/q]

P>>Отсюда и делайте выводы — чем же foreach лучше for.


Мне кажется задачи, которые решаются при помощи коллекций, можно разделить на:
  1. те, которые решаются стандартными средствами (for, foreach + реализация коллекцией IEnumerable по умолчанию).
  2. те, которые не решаются через стандартные средства.

Ко второму типу задач, например, можно отнести следующую: обход бинарного дерева в обратном порядке. Дерево тоже можно представить как IEnumerable, а способ обхода дерева как IEnumerator. IEnumerator это реализация алгоритма, который можно повторно использовать и при этом не раскрывается внутреннее прелставление.

А тот же обход списка в обратном порядке, как отвечали выше, можно обойти при помощи for.

То есть, не надо на ровном месте писать кучу энумераторов — пишите их там где это Вам удобно.

А>И зачем это нужно для работы со списком или массивом? Понятие о "внутреннем представлении" этих объектов мне кажется надуманным, а разработка на каждый чих (например, обратный перебор или перебор с условием) нового итератора — излишней и не продуктивной. А если надо несколько переборов на много элементов с одинаковым условием делать, писать кэширующий итератор или просматривать весь список каждый раз?

А>Поверьте, я не ругаюсь, я просто не понимаю.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Как получить обратный for each?
От: Lloyd Россия  
Дата: 11.09.06 15:30
Оценка:
Здравствуйте, vitz, Вы писали:

V>Вот и я ща свое БЕ выскажу...


V>Да ничем foreach пренципиально не лучше, но только если уважеемые госпада вспомнат чем массив от списка отличается?

V>и если для перебора списка использовать перегруженый индексатор и произвольный доступ через for...
V>А для массивов использовать итераторы и foreach...
V>Вот тогда и получится извращение, и дело не в простоте синтаксиса конструкций или еще чего-то там это и есть особенности внутренней организации

Что-то никак не пойму чего ты хотел своим сообщением сказать? Можешь расшифровать (для тех, кто в танке)?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Как получить обратный for each?
От: Аноним  
Дата: 11.09.06 16:02
Оценка:
Zapolnyai Queue v processe prohoda foreach-em Potom vnutri etogo Queue eshe odin Queue (rekursivno) — poluchitsya mayatnik
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.