我通常知道您会使用File.ReadAllLines
,但我正在尝试使用上传的文件。
我可以以某种方式将其放入临时位置吗?或从内存中读取它?
我能够让这个工作
答案 0 :(得分:4)
这是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)
即。如果是Stream
你正在阅读:
using(var reader = new StreamReader(inputStream)) {
foreach(var line in ReadLines(reader)) {
// do something fun and interesting
}
}