【发布时间】:2012-01-27 21:16:17
【问题描述】:
我知道通常你会使用File.ReadAllLines,但我正在尝试使用上传的文件。
我可以把它放到一个临时位置吗?或者从内存中读取它?
我能够得到这个工作
【问题讨论】:
-
需要什么样的解析,为什么选择LINQ?
标签: c# linq text-parsing
我知道通常你会使用File.ReadAllLines,但我正在尝试使用上传的文件。
我可以把它放到一个临时位置吗?或者从内存中读取它?
我能够得到这个工作
【问题讨论】:
标签: c# linq text-parsing
这是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
}
}
【讨论】: