これに似た方法を使用して、10進値のコレクションを要約する方法があります...
Dim _amountCollection as New List(Of Decimal)
_amountCollection.Add(145.12D)
_amountCollection.Add(11.32D)
_amountCollection.Add(6547.07D)
Dim _totalAmount as Decimal
For Each _individualAmount as Decimal in _amountCollection
_totalAmount += _individualAmount
Next
実際のコードでは、通常、金額コレクションにはより多くのメンバーがあり、合計操作で合計する必要がある少なくとも50の個別の金額コレクションがあります。
この合計量の再計算は頻繁に呼び出され(少なくとも1回、コレクションコンテンツの変更ごとに再度)、合計操作時間の2〜5%を消費するものとしてプロファイルトレースに表示されます。この合計操作を高速化する方法を誰かが知っているかどうか、またはこれが最も高速であるかどうかを確認したいと思います。
この場合、金額を再計算する必要があるため、キャッシングは現実的ではありません。
****編集**RavadreとJoelの場合-合計金額はクラスレベルで保存されます(各金額のコレクションと合計はクラスインスタンスに含まれます)
何か案は?