Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
4 / 4 / 4
Регистрация: 29.11.2014
Сообщений: 131

Обратиться к разным переменным с одинаковым префиксом

03.01.2015, 21:11. Показов 2662. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть переменные Source1, Source2, Source3, ... Source6.(Все переменные имеют тип ArrayList)

Мне нужно обратится к каждой из этих переменных в цикле по очереди.

В PHP я бы написал так :

PHP
1
2
3
4
for($i = 0; $i < 7; $i++)
{
$Source$i ..........
}
А вот на шарпе у меня это вызывает трудности. Что посоветуете?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.01.2015, 21:11
Ответы с готовыми решениями:

Удалить файл с одинаковым префиксом
помогите написать скрипт удаления файлов с обиданковым префиксом никогда не работал с делф а лабу нужно сдать

Как обращаться к textBox с одинаковым префиксом циклом?
Допустим у меня есть n textBox:x0,x1,...,xn. Могу ли я с помощью цикла например текст из каждого из текстбоксов с префиксом х поместить в...

Виртуальные функции с одинаковым именем и разным набором аргументов
Есть абстрактный базовый класс и пара наследников. class Base { public: vurtual void Func(int a); vurtual void Func(int...

9
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.01.2015, 21:16
Лучший ответ Сообщение было отмечено allCrowley как решение

Решение

Цитата Сообщение от allCrowley Посмотреть сообщение
Что посоветуете?
1. Собрать все ваши переменные в коллекцию и работать с ними через индекс.
2. По возможности отказаться от использования данного класса и использовать строго типизированные коллекции.
1
4 / 4 / 4
Регистрация: 29.11.2014
Сообщений: 131
03.01.2015, 23:24  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
Собрать все ваши переменные в коллекцию и работать с ними через индекс.
Прошу прощения, вопрос глупый, наверное, но как это сделать?
0
Заблокирован
03.01.2015, 23:37
allCrowley, может вы лучше напишите какую задачу решаете? Так будет проще что-то посоветовать, так как такого способа обращения к переменным, как в php в c# нет
Цитата Сообщение от allCrowley Посмотреть сообщение
Прошу прощения, вопрос глупый, наверное, но как это сделать?
Нормальный вопрос:
C#
1
2
3
4
5
6
          
  List<List<string>> Source = new List<List<string>>();
            Source.Add(new List<string>() { "one", "two" });
            Source.Add(new List<string>() { "thr", "four" });
            Console.WriteLine(Source[0][0]);//Выведет one
            Console.WriteLine(Source[1][1]);//Выведет four
1
 Аватар для Prog_maker
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
04.01.2015, 00:42
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
List<List<string>> Source = new List<List<string>>();
* * * * * * Source.Add(new List<string>() { "one", "two" });
* * * * * * Source.Add(new List<string>() { "thr", "four" });
* * * * * * Console.WriteLine(Source[0][0]);//Выведет one
* * * * * * Console.WriteLine(Source[1][1]);//Выведет four
C#
1
2
3
4
5
6
7
          for (int i = 0; i < Source.Count; i++)
            {
                for (int j = 0; j < Source.Count; j++)
                {
                     Console.WriteLine(Source[i][j]);
                }
            }
как дополнение

Хотя на мой взгляд for для IEnumerable не айс, лучше foreach
1
Заблокирован
04.01.2015, 01:22
Prog_maker, Я вас немного поправлю: граница второго цикла должна быть не такая, т.к. вполне возможно, что во внутренних списках количество элементов будет в каждом свое

C#
1
2
3
4
5
6
7
8
            for (int i = 0; i < Source.Count; i++)
            {
                for (int j = 0; j < Source[i].Count; j++)
                {
                    Console.Write("{0} ",Source[i][j]);
                }
                Console.WriteLine();
            }
1
 Аватар для Prog_maker
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
04.01.2015, 01:40
Ах да, что то я не заметил. Да мой косяк.
1
4 / 4 / 4
Регистрация: 29.11.2014
Сообщений: 131
04.01.2015, 02:27  [ТС]
На самом деле меня осенило уже минут через 10 после того, как я спросил повторно)

Я просто заменил все эти переменные одним ArrayList'ом, значения которых я просто дописывал (Globals.Source[i] = Globals.Source[i] + ....)

Всем спасибо за ответы!
0
 Аватар для Prog_maker
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
04.01.2015, 04:47
allCrowley,
ArrayList представляет коллекцию объектов. Чтобы поместить объект в коллекцию, применяется метод Add. И хотя мы добавляем в коллекцию числа и строки, но по существу ArrayList содержит коллекцию значений типа Object, а это значит, что в вызовах array.Add(x); и array.Add(s); значения переменных x и s сначала будут "упакованы" в значения типа Object, потом при получении элементов из коллекции - наоборот, "распакованы" в нужный тип. Упаковка и распаковка ведут к снижению производительности, так как системе надо осуществить необходимые преобразования
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
05.01.2015, 00:37
Цитата Сообщение от Prog_maker Посмотреть сообщение
И хотя мы добавляем в коллекцию числа и строки, но по существу ArrayList содержит коллекцию значений типа Object, а это значит, что в вызовах array.Add(x); и array.Add(s); значения переменных x и s сначала будут "упакованы" в значения типа Object, потом при получении элементов из коллекции - наоборот, "распакованы" в нужный тип.
Поправка - упаковка выполняется только для value-типов таких как int, double, bool, char, DateTime и т.д. Строка это ссылочный тип и упаковке не подвергнется.

Цитата Сообщение от Prog_maker Посмотреть сообщение
Упаковка и распаковка ведут к снижению производительности, так как системе надо осуществить необходимые преобразования
Всё верно. Поэтому по возможности следует использоваь List<T> вместо ArrayList.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.01.2015, 00:37
Помогаю со студенческими работами здесь

Как программно создавать объект Shape с одинаковым именем и с разным индексом?
Как програмно создавать объект Shape с одинаковым именем и с разным индексом???

Как обратиться к одинаковым компонентам по индексу?
есть на форме 10 Label. т.е. Label1, Label2 ....Label10. как сделать так, чтобы можно было через цикл загнать в них информацию? ...

Как мне обратиться к коллекции элементов с одинаковым ID
У меня есть таблица, в каждой строке все TD имеют одинаковый ID. Как мне обратиться ко всем этим TD в нужной мне строке?

Обратиться сразу к нескольким переменным
Добрый вечер. Можно с помощью iQuery одновременно обратиться к нескольким переменным? Поясняющий код внизу. ...

Как обратиться к переменным метода
Здравствуйте. Народ подскажите плз. Есть вот такой код. Как в данном коде обратится к переменной метода lengthTables в методе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru