2013-04-15 3 views
3

Я хотел бы отсортировать datagridview с несколькими действиями.Динамически сортировать с linq C#

Я объясняю себе: у меня есть словарь с ключом и значением. значение является строкой с ASC или DESC, и я хотел бы, чтобы отсортировать все с этой стратегией:

string sort=String.Empty; 
sort+=".OrderBy(c=>c.Value)"; ==> the first one in my list 
foreach(var column in list) 
{ 
    if(column.Value=="DESC") 
     sort+=".ThenByDescending(c=>c.Value)"; 

    if(column.Value=="ASC") 
     sort+=".ThenByAscending(c=>c.Value)"; 
} 

List<Formule> list=ListFormules.Where(f=>f.Identificator==null) ==> Это моя проблема

Я не знаю, как изменить строку для работы в моем запросе. У вас есть идея или лучший способ сделать это?

+2

Проверьте динамический интерфейс. [link] (http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx) – scheien

+1

+1 @ scheien - вероятно, должен быть расширен до полного ответа ..! – AlexFoxGill

+0

@AlexG Невозможно даже рассчитать все ответы, где это уже было объяснено ... – usr

ответ

2

Оставьте мой комментарий в виде ответа, связанного с комментариями.

Вы должны проверить динамический linq.

У Скотта Гатри есть подробное сообщение в блоге об этом. Link

+3

Возможно, вы захотите расширить свой ответ, однако, поскольку ссылки-только-ответы считаются в значительной степени бесполезными из-за возможной связи-гниения. –

Смежные вопросы