CasperOneの答えを拡張する
簡単に言えば、一度に100GBのファイルを確実にメモリに入れる方法はありません。32ビットマシンでは、アドレス空間が十分ではありません。64ビットマシンには十分なアドレス空間がありますが、実際にファイルをメモリに取り込むのにかかる時間の間に、ユーザーはフラストレーションからプロセスを強制終了します。
秘訣は、ファイルを段階的に処理することです。基本のSystem.IO.Stream()クラスは、可変の(場合によっては無限の)ストリームを個別の量で処理するように設計されています。特定のバイト数だけストリームを進むReadメソッドがいくつかあります。ストリームを分割するには、これらのメソッドを使用する必要があります。
あなたのシナリオは十分に具体的ではないので、私はこれ以上の情報を与えることができません。詳細、レコードのデリメータ、またはファイルのサンプル行を教えてください。
アップデート
それらが固定長のレコードである場合、System.IO.Streamは問題なく機能します。File.Open()を使用して、基になるStreamオブジェクトにアクセスすることもできます。Stream.Readには、ファイルから読み取るバイト数を要求するオーバーロードがあります。それらは固定長のレコードであるため、これはシナリオに適しています。
ReadAllText()を呼び出さず、代わりに明示的なバイト配列を受け取るStream.Read()メソッドを使用する限り、メモリは問題になりません。基礎となるStreamクラスは、ファイル全体をメモリに入れないように注意します(もちろん、要求しない限り、:))。