我知道通常您会使用 File.ReadAllLines
,但我正在尝试使用上传的文件来执行此操作。
我能否以某种方式将其放入临时位置?或者从内存中读取?
我能够让它工作
最佳答案
这是 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
}
}
关于c# - 使用 LINQ 解析文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4825589/