VB.netのアルゴリズムについての質問です。

CSVを6列*1000行の配列のソート方法に頭を悩ませています。
一度DBに格納してから抽出すれば工数的には少なくてすむのですが
いかんせん非常に遅い処理になります。

やりたいことは上記csvの4列目と5列目でソートしてTop20を取得し
1,2,5列を書き出すことです。
やはりDBを使わずに実装するには、ArrayListをArrayListに格納する
という、無理矢理なやり方しかないのでしょうか・・・。

ナイスな方法をご存じの方、いらっしゃいましたら教えて下さい。