![]() |
|
Модераторы: gambit |
![]()
|
|
| KonstantinBykov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 19.3.2009 Репутация: нет Всего: нет |
В одной из процедур класса вот такая переменная:
var shipping = from sh in shipping_ select new { catalog = sh.catalog, cost = sh.cost, shipping_UPS_1 = sh.shipping_UPS_1, shipping_UPS_2 = sh.shipping_UPS_2, shipping_UPS_3 = sh.shipping_UPS_3, shipping_track = sh.shipping_track, ship_by_track = sh.ship_by_track, ship_by_UPS = sh.ship_by_UPS, hazmat_ground = sh.hazmat_ground, hazmat_ground_add = sh.hazmat_ground_add, hazmat_truck = sh.hazmat_truck, hazmat_truck_add = sh.hazmat_truck_add, cost_after_shipping = sh.cost + sh.shipping_UPS_1 * sh.ship_by_UPS + sh.shipping_UPS_2 * sh.ship_by_UPS + sh.shipping_UPS_3 * sh.ship_by_UPS + sh.shipping_track * sh.ship_by_track + sh.hazmat_ground_add * sh.hazmat_ground + sh.hazmat_truck_add * sh.hazmat_truck }; Как мне её, несчастную, передать в другую процедуру для дальнейшей обработки. Вариант такого рода как void SomeProcedure(var a) не прокатывает, т.к. надо чётко указать тип переменной. Где его взять, не сильно напрягая мозг в вычислении получившегося типа? |
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 1 Всего: 36 |
KonstantinBykov,
Как мне её, несчастную, передать в другую процедуру для дальнейшей обработки. IEnumarable<object>, наверное... |
|||
|
||||
| KonstantinBykov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 19.3.2009 Репутация: нет Всего: нет |
В этом случае я теряю всю структуру, что не есть гуд.
|
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 1 Всего: 36 |
KonstantinBykov,
что естейсствено, ты же юзаешь анонимный тип. |
|||
|
||||
| KonstantinBykov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 19.3.2009 Репутация: нет Всего: нет |
Rififi,
а как не терять? |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 5 Всего: 62 |
Можно использовать Generic'и:
|
|||
|
||||
| HalkaR |
|
|||
![]() Пуфыстый назгул ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2132 Регистрация: 8.12.2002 Где: В Москве Репутация: нет Всего: 42 |
Сделай класс, содержащий все нужные поля и делай не анонимный тип, а объекты этого класса.
|
|||
|
||||
| KonstantinBykov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 19.3.2009 Репутация: нет Всего: нет |
HalkaR,
Этого я и боялся... Ну вот пример из моего кода: IEnumerable<DataRow> Inventory = from a in Inventory_Truserv_Item.AsEnumerable() select a; IEnumerable<DataRow> Catalog = from b in Catalog_Truserv_Item.AsEnumerable() select b; var InventoryGroup = Inventory.GroupBy(d => d.Field<string>("item_nbr")).Where(a => a.Count() < 4); var CatalogLt4 = from catalog in Catalog join inventory in InventoryGroup on catalog.Field<string>("item_nbr") equals inventory.Key into co from inventory in co.DefaultIfEmpty() select new { catalog = catalog, inventory = inventory }; Какой класс создать для CatalogLt4 ? |
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 1 Всего: 36 |
KonstantinBykov,
у тебя вариантов только три: 1. не использовать анонимы 2. использовать анонимы, но только в месте создания (in scope) (как собстна, и было задумано) 3. reflection |
|||
|
||||
| KonstantinBykov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 19.3.2009 Репутация: нет Всего: нет |
reflection - не понял. что это? > использовать анонимы, но только в месте создания (in scope) (как собстна, и было задумано) это имеется ввиду что там где создал там же с ними и распрощался? |
|||
|
||||
| KonstantinBykov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 19.3.2009 Репутация: нет Всего: нет |
Всё. Всем СПАСИБО. Понял что нет таблетки. Закрываем тему (не знаю как только).
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |