Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2015, 13:15   #1
ArsenARM
Пользователь
 
Регистрация: 24.10.2014
Сообщений: 19
По умолчанию Linq OrderBy

Как сортировать объекты по моему параметру?

например вместо этого

var show=(from n in db.Players
orderBy n.Country
select n);

сделать так

var show=(from n in db.Players
orderBy columnName
select n);
ArsenARM вне форума Ответить с цитированием
Старый 11.02.2015, 13:16   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Это как? Откуда вы columnName берете если его у объекта нет?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.02.2015, 13:24   #3
ArsenARM
Пользователь
 
Регистрация: 24.10.2014
Сообщений: 19
По умолчанию

каждый раз по другому сартирует.у Players есть ID,Name,Country,Rating.

action каждый раз получает параметр string columnName и сортирует по параметру

public ActionResult ActionName(string columName)
{
...........

var show=(from n in db.Players
orderBy columnName
select n);

............
}
ArsenARM вне форума Ответить с цитированием
Старый 11.02.2015, 14:07   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну можно например рефлекшн использовать:
Код:
var prop = db.Players.First().GetType().GetProperty(columnName);
db.Players.OrderBy(p => prop.GetValue(p, null));
Первая ссылка в гугле http://stackoverflow.com/questions/1...rtycolumn-name советует использовать библиотеку Dynamic Linq, тогда можно так:
Код:
db.Players.OrderBy(columnName);
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.02.2015, 14:49   #5
ArsenARM
Пользователь
 
Регистрация: 24.10.2014
Сообщений: 19
По умолчанию

советует использовать библиотеку Dynamic Linq, тогда можно так:
db.Players.OrderBy(columnName);

а по поводу Dynamic Linq,как в этом случае использовать

db.Players.OrderByDescending(column Name);

не получается как то
ArsenARM вне форума Ответить с цитированием
Старый 11.02.2015, 14:59   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Код:
OrderBy(columnName + " DESC")
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.02.2015, 16:26   #7
ArsenARM
Пользователь
 
Регистрация: 24.10.2014
Сообщений: 19
По умолчанию

Спасибо! вы мне помогли!
очень вам благодарен
ArsenARM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга по LINQ ts-alan Обсуждение статей 2 13.12.2012 08:09
LINQ C# sir.andrey Помощь студентам 5 24.10.2011 15:35
LINQ C# sir.andrey Помощь студентам 5 29.09.2011 11:52
вопрос по LINQ kaljan775 C# (си шарп) 1 28.08.2011 17:49
LINQ to XML iiunbreakableii C# (си шарп) 0 03.08.2011 18:35