LINQ и определение столбцов для сортировки
От: Аноним  
Дата: 01.02.11 13:49
Оценка:
Вот криво написал функцию, может кто-то подскажет как красивее сделать (упростить)?

        private IEnumerable<TradingStrategyOperation> GetOperations(TradeDirection direction)
        {
           if(direction==TradeDirection.Sale)
             return from to in TradingOperations
                      where to.Direction == direction
                      orderby to.Price
                    select to;
           else
           return from to in TradingOperations
                  where to.Direction == direction
                  orderby to.Price descending 
                  select to;
        }
Re: LINQ и определение столбцов для сортировки
От: Kalina9001  
Дата: 01.02.11 14:07
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Вот криво написал функцию, может кто-то подскажет как красивее сделать?

использовать тэги:
[c#]
[/c#]
... << RSDN@Home 1.2.0 alpha 4 rev. 1478>>
Re: LINQ и определение столбцов для сортировки
От: RushDevion Россия  
Дата: 01.02.11 14:16
Оценка:
Что тут упрощать-то?
Логику сортировки все равно никуда не денешь.
Ну можно так переписать:

var linq = from to in TradingOperations where to.Direction == direction select to;
if (direction == TradeDirection.Sale)
    linq = from to in linq order by to.Price
else
    linq = from to in linq order by to.Price  descending;
return linq;

Можно на extension's перейти, e.g. TradingOperation.Where(...) — возможно короче получится.
Еще можно Dynamic linq приспособить — скорей всего еще короче будет.
Или вот этот код как-то под себя приспособить.
Re: LINQ и определение столбцов для сортировки
От: _FRED_ Черногория
Дата: 01.02.11 14:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вот криво написал функцию, может кто-то подскажет как красивее сделать (упростить)?



        private IEnumerable<TradingStrategyOperation> GetOperations(TradeDirection direction)
        {
            var query =
                from to in TradingOperations
                where to.Direction == direction
                select to;
            var ordered = (direction == TradeDirection.Sale)
                ? query.OrderBy(item => item.Price) // Одни кейс
                : query.OrderByDescending(item => item.Price); // Другой кейс
            // Что-нить ещё динамическое…
            return ordered;
        }
Help will always be given at Hogwarts to those who ask for it.
Re[2]: LINQ и определение столбцов для сортировки
От: Аноним  
Дата: 02.02.11 11:16
Оценка:
_FR>
_FR>        private IEnumerable<TradingStrategyOperation> GetOperations(TradeDirection direction)
_FR>        {
_FR>            var query =
_FR>                from to in TradingOperations
_FR>                where to.Direction == direction
_FR>                select to;
_FR>            var ordered = (direction == TradeDirection.Sale)
_FR>                ? query.OrderBy(item => item.Price) // Одни кейс
_FR>                : query.OrderByDescending(item => item.Price); // Другой кейс
_FR>            // Что-нить ещё динамическое…
_FR>            return ordered;
_FR>        }
_FR>


Спасибо, так мне нравится больше
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.