Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 12

Как из ArrayList получить System.Collections.Generic.List

27.01.2010, 15:36. Показов 3859. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть следующая переменная:
System.Collections.ArrayList arrayList;
которая содержит элементы типа elemType (Type elemType = какой-то тип).

Необходимо все эти данные загнать в типизированный список System.Collections.Generic.List, т.е. примерно таким образом:

C#
1
2
3
System.Collections.Generic.List<Document> list= new System.Collections.Generic.List<Document>();
foreach(Document d in arrayList)
  list.Add(d);
где вместо Document должно быть elemType. Как это сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.01.2010, 15:36
Ответы с готовыми решениями:

Определение типа объекта System.Collections.Generic
Добрый день. Может быть кто-то подскажет, как однозначно определить, какого типа объект, который является коллекцией элементов...

System.Collections.IEnumerable; как его подключить?
int badhands ;//: System.Collections.IEnumerable; badhands =new int : System.Collections.IEnumerable; ...

No mapping exists from object type system.collections.generic.list при попытке выполнить запрос типа WHERE IN
У меня есть такой запрос: transaction = connection.BeginTransaction(); SqlCommand cmd = new SqlCommand(&quot;DELETE...

11
 Аватар для Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
27.01.2010, 16:46
C#
1
System.Collections.Generic.List<elemType> list = new List<elemType>(arrayList.Cast<elemType>());
0
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 12
27.01.2010, 16:55  [ТС]
такое компилятор не пропустит
0
118 / 119 / 20
Регистрация: 21.01.2010
Сообщений: 252
28.01.2010, 02:20
Видимо у Humanitis студия 2008 может там такое есть.
В вашем случае можно так.

C#
1
2
3
4
5
foreach(object b in arrayList)
{
   elemType temp = (elemType)b;
   list.Add(temp);
}
0
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 12
28.01.2010, 09:32  [ТС]
Видимо, я неправильно объяснил.
elemType - это переменная, т.е. ей присваивается какой-то тип. Этого же типа должен быть и Generic.List.
Например:
Type elemType = prop.PropertyType;
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
28.01.2010, 10:24
List<Type>
0
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 12
28.01.2010, 10:37  [ТС]
Это создаст List типа Type, а не того типа, который определяется в программе динамически и хранится в переменной elemType.
0
 Аватар для Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
28.01.2010, 11:12
А зачем вообще это нужно?Если только во время выполнения будет известен тип.
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
28.01.2010, 11:13
p_evghenii,

Это создаст List типа Type, а не того типа, который определяется в программе динамически и хранится в переменной elemType.

List<object>, List<dynamic>
0
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 12
28.01.2010, 11:47  [ТС]
Где можно скачать исходный код класса XmlSerializer? Думаю, там есть то, что нужно. Ведь он как-то десериализует из XML в объекты, у которых есть свойства List.
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
28.01.2010, 12:23
p_evghenii,

гоогле ".NET Reflector", ".net framework source code"
0
0 / 0 / 0
Регистрация: 17.07.2009
Сообщений: 12
29.01.2010, 09:27  [ТС]
Самый главный вопрос - как динамически подставить тип между скобками <>. Т.е. в List<T> вместо Т подставлять нужный тип. List<object> не подойдет, потому что List<потомок object> не является потомком List<object>. Вообще можно ли как-то через Reflection создать System.Collections.Generic.List<T> и заполнить его элементами?
Есть какие-нибудь идеи?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.01.2010, 09:27
Помогаю со студенческими работами здесь

Шаблон System.Collections.Generic.List со своим классом в качестве параметра
При добавлении методом .Add контейнера List, если в качестве класса у шаблона использовать стандартный класс string - добавляется строка с...

Вывести список из метода. Ошибка Неявное преобразование типа "System.Collections.Generic.List<double>" в "double"
Добрый день. Есть функция в библиотеке классов, расчеты в которой приводят к получению списка: public static double...

Отсутствуют обобщенные коллекции в System.Collections.Generic
Не могу использовать Queue, Stack и остальные коллекции в Generic, компилятор их не видит...

Создать переменную типа System.Collections.ArrayList
мне нужно создать переменную типа System.Collections.ArrayList объектов типа отдельного класса как это прописать? например есть...

Невозможно привести Iesi.Collections.Generic.ISet<some_type> к Iesi.Collections.Generic.ISet<object>. Elma BPM
Дорова! Есть система управления бизнес-процессами Elma-BPM, и в ней скрипты пишутся на C#. Система при помощи конструктора сама...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru