【问题标题】:Parse text file with LINQ使用 LINQ 解析文本文件
【发布时间】:2012-01-27 21:16:17
【问题描述】:

我知道通常你会使用File.ReadAllLines,但我正在尝试使用上传的文件。

我可以把它放到一个临时位置吗?或者从内存中读取它?

我能够得到这个工作

【问题讨论】:

标签: c# linq text-parsing


【解决方案1】:

这是stringStream 还是什么?无论哪种方式,您都想要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
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 2018-10-27
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多