【发布时间】:2017-07-21 14:22:22
【问题描述】:
我已经有了解决这个问题的方法,但对我来说似乎非常令人困惑和不切实际。
我打算做的是逐行读取文件(由于文件大小,一次将其全部加载到内存中是不切实际的),并且如果满足某些条件(例如:该行匹配正则表达式模式,或包含某些关键字,或等于某个字符串)
这是我最理想的:
void TryGetLineIf(string filePath, Condition condition, out string desiredLine)
{
StreamReader fileReader = new StreamReader(filePath);
string currentLine = "";
while (!fileReader.EndOfStream)
{
currentLine = fileReader.ReadLine();
if (condition)
{
desiredLine = currentLine;
}
}
}
但是,我不知道如何处理条件参数。我能想到的唯一方法是用枚举(LineSelectionOptions.IsRegexMatch,LineSelectionOptions.ContainsString ...)替换条件,向void添加一个额外的参数并在它的可能值之间切换。如果相关,我正在使用 .NET 2.0。
【问题讨论】:
-
你的意思是你不知道如何处理这个条件?不知道条件的逻辑怎么写?
-
是的。我不知道如何使条件检查当前正在读取的行(在文件中)是否满足“选择”的标准
-
@Gonzalo.- 不确定你是否能在下面看到我的回复,所以我也在这里标记你