LINQ Query on ConcurrentDictionary of 19710 items slow

У меня есть следующий метод:

    /// <summary>
    /// Calculates the last trade date.
    /// </summary>
    /// <param name="tradesDictionary">The trades dictionary.</param>
    /// <returns>The last trade date.</returns>
    public DateTime CalculateLastTradeDate(ConcurrentDictionary<Guid, TradeRecord> tradesDictionary)
    { 
        // Calculate the last trade date
        _lastTradeDate = (from tradeRecord in tradesDictionary
                          where (tradeRecord.Value.OrderRecord.PairRecord.Id == _pairId)
                          select tradeRecord.Value.Date)
                         .Max();
        // Return _lastTradeDate
        return _lastTradeDate;
    }

, который занимает + - 129 секунд , то есть + - 2 минуты для выполнения в ConcurrentDictionary 21353 ] объекты в памяти. Могу ли я что-нибудь сделать в запросе, реализованном указанным выше методом, чтобы резко сократить время его выполнения?

Приветствуется любая помощь!

1
задан c0D3l0g1c 4 October 2010 в 08:57
поделиться