インフォテックで作成するソフトでは、1日分などの長期間の時系列測定データを処理する場合などが良くあります。
さすがに全てのデータをRAMメモリ上に確保するのは現実的ではないので、 バイナリファイルにデータを保存し、必要なデータだけを読み込んで使用できるようにするのが良いのですか、データを使用する側の実装が複雑になるのは避けたいところ。
ですので、バイナリファイル内のデータをListのように扱えるFileMappedListクラスを作成しました。このクラスを使用すると、インデクサを使用して指定したインデックスの値だけをバイナリファイルから取得したり、指定したインデックス範囲について間引きを行って値を取得するなどが行えます。データの型はジェネリックで指定可能です。
200行程度の小さいクラスですが、使ってみた結果はとても良いです。