![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
Gregoryy |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 6.10.2007 Репутация: нет Всего: 1 |
Есть метод
Пытаюсь передать эму результат такого запроса
Чтобы в этом методе выполнить с data еще пару манипуляций типа
Значения х и у будет браться из свойств класса где реализован метод. Вот только не могу понять правильно ли я реализовал метод. Если да, тогда как привести в тип чтобы можно было выполнить такие манипуляции? Результат выполнения метода хочу вернуть в ListView.DataSource |
||||||
|
|||||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
1. Твой запрос нескомпилится. А именно - ты создаёшь анонимный тип без именования пропертей (кроме суммы). Так нельзя
![]() 2. Большинство экстеншен-методов от Enumerable применимы только к дженерик-версии IEnumerable. Проблма в том, что для анонимного типа ты не сможешь объявить сигнатуру дженерик-версии IEnumerable. Потому - создай свой тип, возвращай IEnumerable<MyType>. И разберись с инициализацией пропертей при вызове конструктора (с использованием синтаксиса C# 3.0). Ещё такой момент - ты уверен, что тебе всегда нужна эта сумма? Может проще вернуть просто твой news (тогда тип для IEnumerable уже будет готов)? А, если понадобятся, посчитать суммы. |
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 4 Всего: 49 |
Вообще-то так можно. Gregoryy, передавай IEnumerable, только внутри делай data.Cast<object>().Skip(x * y).Take(x)... Возможны глюки с определенными провайдерами, но в общем должно работать. |
|||
|
||||
Gregoryy |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 6.10.2007 Репутация: нет Всего: 1 |
Любитель, запрос работает нормально. Данные выводятся.
PashaPash, Не совсем понял что ты имеешь виду внутри? Дело в том что когда я передаю данные в метод, который принимает и возвращает IEnumerable, я не могу с ними нечего сделать. Если точно сказать data не имеет методы фильтрации. Я приводил в тип List<IEnumerable> вроде фильтрация активировалась. Но свойства отсутствуют или данные просто пустые. Я уже по разному пробовал. Но так и не понял как правильно сделать. Например если сделать так:
Если вот так:
|
||||||||
|
|||||||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: нет Всего: 92 |
О, позор мне! Блин, не знал ![]() Gregoryy, Skip, Take и прочие действительно (как правильно сказал PashaPash) можно заставить работать, вернув IEnumerable<object>. Для получения последнего используется экстеншен-метод Cast. Но пройти по пропертям всё равно не получится. Более того, после такой манипуляции (возвращения анонимного типа) с пропертями можно будет работать только через рефлекшен. Что вряд ли удобно ![]() |
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 4 Всего: 49 |
Gregoryy, List<IEnumerable> - это жестоко. Попробуй что-то типа:
судя по всему, тут нужно что-то типа pager-а, ему не нужны проперти. а результат отдается ListView, тот тоже не требует строгой типизации. Это сообщение отредактировал(а) PashaPash - 11.3.2009, 11:58 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |