powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / For Each для одного измерения массива
8 сообщений из 8, страница 1 из 1
For Each для одного измерения массива
    #39651539
mr. Shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данный цикл проходит по всем элементам двумерного массива

Код: vbnet
1.
2.
3.
For Each el In arr
    MsgBox el
Next el



можно ли сделать так, чтобы For Each сработал только для одного измерения, например вот так:
Код: vbnet
1.
2.
3.
For Each el In arr(0)
    MsgBox el
Next el
...
Рейтинг: 0 / 0
For Each для одного измерения массива
    #39651548
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. ForEach выполняет итерацию по элементам текущего контейнера. В двумерном массиве таким элементом является один элемент массива, а не "строка" элементов.
Создавайте не двумерный массив, а массив массивов - тогда будет можно.
...
Рейтинг: 0 / 0
For Each для одного измерения массива
    #39651563
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mr. Shu,
если пишете в Excel VBA, то можно извлечь строку или столбец из массива с помощью функции ИНДЕКС. Правда, она имеет ограничения, в частности длина строк не более 255.
Код: vbnet
1.
2.
3.
  For Each el In WorksheetFunction.Index(arr, 2) 'второй столбец по счету (не по индексу)
'...
  For Each el In WorksheetFunction.Index(arr, 0, 2) 'вторая строка по счету (не по индексу)
...
Рейтинг: 0 / 0
For Each для одного измерения массива
    #39651564
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то есть наоборот
Код: vbnet
1.
2.
3.
For Each el In WorksheetFunction.Index(arr, 2) 'вторая строка по счету (не по индексу)
'...
For Each el In WorksheetFunction.Index(arr, 0, 2) 'второй столбец по счету (не по индексу)
...
Рейтинг: 0 / 0
For Each для одного измерения массива
    #39651778
mr. Shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaСоздавайте не двумерный массив, а массив массивов - тогда будет можно.
Я Range загоняю в массив, и дополнительно делать из него массив массивов не очень вроде идея, но за разъяснение механизмов спасибо!

Казанскийто есть наоборот
Код: vbnet
1.
2.
3.
For Each el In WorksheetFunction.Index(arr, 2) 'вторая строка по счету (не по индексу)
'...
For Each el In WorksheetFunction.Index(arr, 0, 2) 'второй столбец по счету (не по индексу)



Этот способ подошел. Спасибо!
...
Рейтинг: 0 / 0
For Each для одного измерения массива
    #39651793
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr. Shu,

мне вот непонятно: а почему все же нельзя использовать For ... Next? Чем он провинился? Он как раз для таких ситуаций.
...
Рейтинг: 0 / 0
For Each для одного измерения массива
    #39652165
mr. Shu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Pristmr. Shu,
мне вот непонятно: а почему все же нельзя использовать For ... Next? Чем он провинился? Он как раз для таких ситуаций.

Он не провинился, я им и пользуюсь в основном. Просто пришла в голову мысль поискать альтернативу.
...
Рейтинг: 0 / 0
For Each для одного измерения массива
    #39652171
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr. Shuпришла в голову мысль поискать альтернативу.Для массива ForEach - хреновая альтернатива. Оно предназначено для коллекций.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / For Each для одного измерения массива
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]