2
我有以下方法:.NET的LINQ:檢查數組索引和長度EXCEPTION
/// <summary>
/// Gets the specified side of trades.
/// </summary>
/// <param name="tradesDictionary">The trades dictionary.</param>
/// <param name="side">The side.</param>
public IEnumerable<TradeRecord> GetTrades(Dictionary<Guid, TradeRecord> tradesDictionary, Side side)
{
return (from tradeRecord in tradesDictionary.Values.ToList().AsParallel()
where (tradeRecord.OrderRecord.PairRecord.Id == _pairId)
&& (tradeRecord.Side == side.ToString())
orderby tradeRecord.Date, tradeRecord.DateCreated, tradeRecord.Id
select tradeRecord);
}
這將導致以下異常:
目標數組不夠長 複製所有項目在 集合中。檢查數組索引和 長度。
字典傳入,字號不斷增加。我以前沒有收到錯誤,唯一改變的是tradesDictionary中的數據量。
- 爲什麼會發生此異常?
- 我如何防止它發生?
感謝Jon的建議。我會試試這個。 – c0D3l0g1c 2010-09-21 11:25:04
將我的易失性Dictionary對象更改爲ConcurrentDictionary,並且不再接收錯誤。我在查詢開始時也做了你的建議 - 它的確提高了性能,但是可以忽略不計。隨着字典的增長,我相信性能增益會變得更加明顯。再次感謝! – c0D3l0g1c 2010-09-21 12:38:16