2011-01-28 5 views
1

通常はFile.ReadAllLinesを使用しますが、アップロードしたファイルでそれを実行しようとしています。テキストファイルをLINQでパースする

私は何とか一時的な場所に置くことができますか?それともメモリから読み取ることができますか?

私はこの作業

+1

おそらく関連するhttp://stackoverflow.com/questions/1797576/c-file-upload-read-to-memory-and-use-as-text-file-is-there-a-betterway –

+2

解析の種類が必要で、なぜLINQで解決したのですか? –

答えて

4

が、これはstringStream、または何ですか取得することができましたか?いずれにせよ、あなたはTextReaderがほしい - 質問は単にStringReaderStreamReaderです。それがある場合

すなわち
string[] lines = ReadLines(reader).ToArray(); 
// note: buffered - all read into memory at once (less memory efficient) 

foreach(var line in ReadLines(reader)) { 
    // note: non-buffered - i.e. more memory-efficient 
} 

か:どちら読者、私がすることができ、ユーザのいずれかで、その後

public static IEnumerable<string> ReadLines(TextReader reader) { 
    string line; 
    while((line = reader.ReadLine()) != null) yield return line; 
} 

:あなたはことをしたら、私のような何かをするだろうStreamあなたから読んでいる:

using(var reader = new StreamReader(inputStream)) { 
    foreach(var line in ReadLines(reader)) { 
     // do something fun and interesting 
    } 
} 
関連する問題