index de tableau et la longueur je la méthode suivante:LINQ .NET: Vérifiez 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);
}
Ce qui provoque l'exception suivante:
tableau de destination n'est pas assez longtemps pour copier tous les éléments dans la collection . Vérifiez l'index du tableau et longueur.
Le dictionnaire transmis est de taille constamment croissante. Je ne recevais pas l'erreur avant, la seule chose qui a changé est le volume de données dans le tradesDictionary.
- Pourquoi cette exception se produit-elle?
- Comment puis-je empêcher cela?
Merci pour la suggestion Jon. Je veux bien essayer. – c0D3l0g1c
J'ai changé mes objets Dictionnaire volatils en ConcurrentDictionary et je ne reçois plus l'erreur. J'ai aussi fait ce que vous aviez recommandé au début de ma requête - cela améliore les performances, mais est négligeable. Comme le dictionnaire se développe, je suis sûr que le gain de performance deviendra plus visible. Merci encore! – c0D3l0g1c