powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Получить данные из необобщённого IEnumerable
12 сообщений из 12, страница 1 из 1
Получить данные из необобщённого IEnumerable
    #38401863
Andrey_VP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В переменной Q типа IEnumerable содержится выборка из нескольких полей разных таблиц (поэтому IEnumerable и не обобщённый).
Подскажите, как обратиться к этим полям? Q.FiledName не прокатывает.
Мышку к переменной подносишь на точке останова в VS - видны названия полей и значения.
А как в коде к ним подобраться?
...
Рейтинг: 0 / 0
Получить данные из необобщённого IEnumerable
    #38402188
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведи тестовый пример, гадалка в отпуске.
...
Рейтинг: 0 / 0
Получить данные из необобщённого IEnumerable
    #38402331
Andrey_VP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подробнее:
в сборке репозитория есть функция, возвращающая IQueryable:
Код: c#
1.
2.
3.
4.
5.
 return  from TR in context.TuneR
                    join TRU in context.TuneRU
                        on TR.ID equals TRU.TuneRID
                    orderby TRU.RCaption 
                    select new { TR.RName, TRU.RCaption };


В главной сборке переменная Q типа IEnumerable принимает результат этой функции:
Код: c#
1.
IEnumerable Q = Repository.ListOfR();


Можно перебрать записи так:
Код: c#
1.
 foreach (object x in Q)


Но как получить доступ к значениям полей?
x.RName - не проходит.
...
Рейтинг: 0 / 0
Получить данные из необобщённого IEnumerable
    #38402336
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
foreach (dynamic x in Q)
...
Рейтинг: 0 / 0
Получить данные из необобщённого IEnumerable
    #38402349
Andrey_VP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SerP1983, в этом случае при обращении x.RName возникает ошибка:
"object" не содержит определения для "RName"
...
Рейтинг: 0 / 0
Получить данные из необобщённого IEnumerable
    #38402394
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эм а в чем удивление?

- типизировать выход
- анонимный селект из выхода делать за пределами репо
- foreach + dynamic не работает потому что вы не материализовали выход из репо
...
Рейтинг: 0 / 0
Получить данные из необобщённого IEnumerable
    #38402441
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_VPПодробнее:
в сборке репозитория есть функция, возвращающая IQueryable:
Код: c#
1.
2.
3.
4.
5.
 return  from TR in context.TuneR
                    join TRU in context.TuneRU
                        on TR.ID equals TRU.TuneRID
                    orderby TRU.RCaption 
                    select new { TR.RName, TRU.RCaption };


В главной сборке переменная Q типа IEnumerable принимает результат этой функции:
Код: c#
1.
IEnumerable Q = Repository.ListOfR();


Можно перебрать записи так:
Код: c#
1.
 foreach (object x in Q)


Но как получить доступ к значениям полей?
x.RName - не проходит.

Мля, ты можешь написать ребочий тестовый пример? Что такое ListOfR, что это за TuneR и прочее?

Еще раз: напиши тестовый пример, который можно скомпилировать и выполнить. Для этого не обязательно нужна БД.
...
Рейтинг: 0 / 0
Получить данные из необобщённого IEnumerable
    #38402450
Andrey_VP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
handmadeFromRu, пришлось вынести селект за пределы репо, хотя это было не очень удобно.
Но неужели нет механизма обращения к элементам необобщённого перечисления?
...
Рейтинг: 0 / 0
Получить данные из необобщённого IEnumerable
    #38402452
Andrey_VP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУ, спасибо, мне уже ответили по существу.
(Выдергивать пример из проекта для такого вопроса не хотелось.)
...
Рейтинг: 0 / 0
Получить данные из необобщённого IEnumerable
    #38402494
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_VPНо неужели нет механизма обращения к элементам необобщённого перечисления?
видимость анонимных объектов локальна, и это хорошо.
...
Рейтинг: 0 / 0
Получить данные из необобщённого IEnumerable
    #38403292
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_VP,

можно вместо анонимного типа возвращать кортеж - Tuple.
...
Рейтинг: 0 / 0
Получить данные из необобщённого IEnumerable
    #38403309
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey_VP,
можно, если лень писать строгую типизацию, воспользоваться вот таким шулерским способом ( ну это из разряда курьезов)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        static IEnumerable<T> Sharper<T>(T type, IEnumerable<object> list)
        {
            return list.Cast<T>();
        }
        static IEnumerable<object> GetListForTest()
        {
            return new List<object> { new { first = "ewrwer", last = 5 } };
        } 
        static void Main(string[] args)
        {
            foreach (var o in Sharper(new { first = "simple", last = 0 }, GetListForTest()))
            {
                Console.WriteLine(o.first);
                Console.WriteLine(o.last);
            }

        }
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Получить данные из необобщённого IEnumerable
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]