Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как скопировать содержимое таблицы в список(List)? 
V
    Опции темы
St33l
Дата 7.8.2009, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



есть таблица с товарами допустим. там наименование идет и его характеристики. есть класс tovar. с такой же структурой, как и таблица. нужно список товаров из таблицы загнать в список (List), чтобы дальше с ним выполнить некие математические операции.
не могу понять, как это сделать :(
во-первых, в лист нужно добавлять уже существующий объект. внутри него инициализировать не получится, как например в массиве. тут у меня все упирается в создание уникальных названий объектов.
во-вторых, как компактно и быстро скопировать 1 БОЛЬШУЮ структуру (много свойств у товара) в другую (в объект)
PM   Вверх
Lexicss
Дата 7.8.2009, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 16.8.2006
Где: Беларусь, Минск

Репутация: нет
Всего: 1



пока по первому:
А какой тип у списка товаров из таблицы? Массив структур? 
Если я правильно понял вопрос, то поэлементно в экземпляр List копировать из массива структур(таблицы).

Добавлено через 5 минут и 21 секунду
по второму:
вторая структура должна иметь тот же тип что и первый. 
просто присваеваете переменной второй структуры - первую. данные копируются. 

--------------------
Бери от жизни всё.
PM MAIL WWW ICQ Skype   Вверх
St33l
Дата 7.8.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



спасибо за помощь!
товар - просто набор свойств.

в общем я так понял, что отображение содержимого таблицы в объект - это просто присваивание переменной объекта соответствующего значения ячейки?

хорошо, а вот допустим у меня 10 товаров (в таблице 10 наименований с характеристиками). необходимо в памяти создать 10 объектов-товаров, заполнить их данными из таблицы и внести в list<Tovar> (с ним уже будет математика применяться). как такое можно сделать?
ведь list пополнять можно только уже инициализированными объектами? т.е.
Код

List<Tovar> lstTovar = new List<Tovar>();
Tovar t1 = new Tovar();
Tovar t2 = new Tovar();
Tovar t3 = new Tovar();
Tovar t4 = new Tovar();
...
Tovar t10 = new Tovar();
lstTovar.Add(t1)..


а такое у меня не сработало (хотя если бы сработало, то тогда вопрос бы отпал, заполнить лист нужным количеством товаров можно было бы через цикл):
Код

List<Tovar> lstTovar = new List<Tovar>();
lstTovar[0] = new Tovar();


Суть вопроса, как мне эти 10.. 20, икс объектов-товаров создать, чтобы потом добавить в List?
PM   Вверх
ДобренькийПапаша
Дата 7.8.2009, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



а Вам это всё зачем? Вы с базой данных работает?


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
St33l
Дата 8.8.2009, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



да. все товары хранятся там. справочник, так сказать. пользователь составляет список. а дальше его нужно обработать.
PM   Вверх
Grok
Дата 8.8.2009, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 17.12.2007

Репутация: нет
Всего: нет



можно инициализировать при добавлении в список

Код

List<Tovar> lstTovar = new List<Tovar>();
lstTovar.Add(new Tovar())..

PM MAIL ICQ   Вверх
St33l
Дата 8.8.2009, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



решил проблему так:
создаем массив. циклом его заполняем. а потом просто lst.AddRange(массив);
всем откликнувшимся спасибо
PM   Вверх
ДобренькийПапаша
Дата 9.8.2009, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: 3
Всего: 7



можно напрямую заполнять используя DataReader


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Heinzz
Дата 10.8.2009, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 3
Всего: 9



Цитата(St33l @  8.8.2009,  19:34 Найти цитируемый пост)
создаем массив. циклом его заполняем. а потом просто lst.AddRange(массив);
всем откликнувшимся спасибо 


а можно ведь и как Grok написал в цикле сразу заполнять List, массив - лишнее звено.
Если же хочется непременно указывать индексы сделайте ArrayList вместо List<>


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.