Я знаю, что обычно вы используете File.ReadAllLines
, но я пытаюсь сделать это с помощью загруженного файла.Разбор текстового файла с LINQ
Могу ли я как-то поместить его во временное место? Или прочитать его из памяти?
я смог получить эту работу
Я знаю, что обычно вы используете File.ReadAllLines
, но я пытаюсь сделать это с помощью загруженного файла.Разбор текстового файла с LINQ
Могу ли я как-то поместить его во временное место? Или прочитать его из памяти?
я смог получить эту работу
Является ли это string
, а Stream
, или что? в любом случае, вы хотите TextReader
- вопрос просто StringReader
vs StreamReader
. После того как вы что, я хотел бы сделать что-то вроде:
public static IEnumerable<string> ReadLines(TextReader reader) {
string line;
while((line = reader.ReadLine()) != null) yield return line;
}
затем с какой бы ни читатель, я могу либо пользователь:
foreach(var line in ReadLines(reader)) {
// note: non-buffered - i.e. more memory-efficient
}
или:
string[] lines = ReadLines(reader).ToArray();
// note: buffered - all read into memory at once (less memory efficient)
т.е. если a Stream
Вы читаете с:
using(var reader = new StreamReader(inputStream)) {
foreach(var line in ReadLines(reader)) {
// do something fun and interesting
}
}
Возможно связано http://stackoverflow.com/questions/1797576/c-file-upload-read-to-memory-and-use-as-text-file-is-there-a-better-way –
Что нужен ли синтаксический разбор, и почему вы остановились на LINQ? –