![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
|
|||
|
||||
| Lirius |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.1.2007 Репутация: нет Всего: нет |
|
|||
|
||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Я извеняюсь. Немного неправильно сформулировал вопрос. Как вывести номер текущего элемента? С названием понятно.
|
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
N1ko, а просто посчитать?
|
|||
|
||||
| Экскалупатор |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
если вместо
сделать так:
то номер будет известен постоянно, хотя может можно и через foreach сделать... |
||||
|
|||||
| N1ko |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 383 Регистрация: 30.12.2007 Где: Киев Репутация: нет Всего: нет |
Я понимаю что так можно сделать. Ещё внутрь foreach можно вставить счётчик, который при каждом прохождении цикла будет наращиваться на один. Но возможно существуют встроенные методы у foreach для выведения текущей позиции? Сколько я не пробовал, не получалось.
|
|||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 3 Всего: 9 |
Это вариант без счетчиков |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 10 Всего: 36 |
||||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
||||
|
||||
| Heinzz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 12.12.2008 Где: .net Репутация: 3 Всего: 9 |
||||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 10 Всего: 36 |
нет, не говорил но есть такие способы решения задачи, которые вне зависимости от требований к скорости-памяти будут неприемлимыми. твой способ один из них, извини за прямоту плохой код всегда плохой Это сообщение отредактировал(а) mihryak - 2.7.2009, 12:25 |
|||
|
||||
| gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
mihryak, как то можно подцепить интерфейс foreach и самому его реализовать, тогда тебе будет доступен индекс текущего эллемента.
|
|||
|
||||
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
вот тут написано, (я же уже давал ссылку) |
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 9 Всего: 49 |
foreach предназначен для "пробегания" по IEnumerable. По IEnumerable, в общем случае, можно пройти только в одном направлении. Кроме того, IEnumerable не гарантирует что последовательность до и после текущего элемента вообще существуетю. Понятия "текущая позиция" тоже нет, есть только "текущий елемент". Аналог foreach по IEnumerable в реальной жизни - гопник Вася ест семки. Он точно знает что за семка у него в руке (Current). Он так же может взять следующую семку (MoveNext). Но он явно не знает порядковый номер текщей семки. Хочешь текущего индекса при проходе по массиву - используй for. Экскалупатор, по ссылке текущий индекс в ArrayEnumerator - это private-поле в private class. Не слишком удобно. С другой стороны - не зря его так глубоко спрятали. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |