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

Обращение к элементам в ArrayList

14.07.2018, 19:45. Показов 1760. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Возникла следующая ситуация: мне необходимо хранить различные типы переменных в одной (включая списки и словари). Как я понимаю, для этих целей целесообразно использовать ArrayList. Но здесь возникла проблема: добавлять в массив данные проблем не возникает, а вот извлекать их - да. Подскажите, пожалуйста, как извлечь необходимые данные из массива такого типа?

Пример:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Объявление переменных
            ArrayList totalList = new ArrayList();
            List<string> list = new List<string>() { "hello", "world" };
            Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>();
            dict["example"] = new List<string>() { "hello", "world" };
            
            // Добавление в массив
            totalList.Add("hello world");
            totalList.Add(list);
            totalList.Add(dict);
 
            // Получение данных и их вывод
            Console.WriteLine(totalList[0]); // Строка "hello world"
            Console.WriteLine(totalList[1]); // Список строк
            Console.WriteLine(totalList[2]); // Словарь
            // Как получить, например, второе значение списка? Например, totalList[1][1] - ошибка?! 
            Console.Read();
Например, как из массива totalList получить второе значение списка list? То есть:
totalList[1] - получаем список строк.
totalList[1][0] - получаем слово "hello". Здесь возникает ошибка...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.07.2018, 19:45
Ответы с готовыми решениями:

Обращение к элементам
Мне надо создать в форме переменное кол-во элементов (textBox) что я сделал без проблем. В цикле присваивая разные имена for(int i=0;...

Обращение к элементам класса
есть класс public class data : IComparable { int y, m, d; // переменные для часов, минут, секунд public data() ...

HtmlAgilityPack. Обращение к элементам
структура: &lt;a&gt; &lt;b&gt;name1&lt;/b&gt; &lt;с&gt;name2&lt;/с&gt; &lt;d&gt; &lt;e&gt;name3&lt;/e&gt; &lt;f&gt;name4&lt;/f&gt; &lt;/d&gt; ...

4
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
14.07.2018, 21:10
Цитата Сообщение от sashkir7 Посмотреть сообщение
как из массива totalList получить второе значение списка list?
В случае с ArrayList нужно сначала привести значение к тому типу списка, который там хранится. Т.е. примерно так:
C#
1
string s = ((List<string>)totalList[1])[0];
На деле же, как мне кажется, здесь был бы более уместен List<dynamic> totalList = new List<dynamic>();. Список с dynamic позволяет обратиться по индексу без танцев с бубном:
C#
1
string s = totalList[1][0];
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
14.07.2018, 21:44
sashkir7, Shogun31337,
здесь изначально неверно поставлена цель. Нужно взять лист бумаги, заварить себе кофе и подумать, а что собственно мы хотим?
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
14.07.2018, 21:47
Цитата Сообщение от amr-now Посмотреть сообщение
здесь изначально неверно поставлена цель
Скорее даже не цель неверно поставлена, а средства неверно выбраны. Но, в целом, согласен. Стоит подумать что должно быть и как правильнее это сделать.
0
Заблокирован
16.07.2018, 22:27
почему foreach не пользуютесь?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.07.2018, 22:27
Помогаю со студенческими работами здесь

Обращение к элементам многомерного массива
Здравствуйте! Прошу помочь разобраться со следующей задачей: как поочерёдно проходить значения в массиве учитывая строки? Нужно написать...

Первая и вторая форма, обращение к элементам
Привет всем! Снова обращаюсь к вам :) Есть две формы, 1форма - главная... 2форма - дополнительная ... В 1 форме при нажатии некого ...

Обращение к элементам класса (поставив точку, показать свойства и методы класса)
Есть класс Audio, у него есть две основных задачи воспроизводить и записывать звук (Recorder/Player). Хотелось бы, что бы все методы и...

Обращение к элементам строки "списка списков"
Здравствуйте! Для объекта (поправьте меня и объясните как правильно это называется) List&lt;List&lt;type&gt;&gt;: private...

Обращение к элементам формы из потока (зависон)
Вот такой код Task.Factory.StartNew(cfg =&gt; { string log = &quot;&quot;; task2 = (cfg as...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru