我需要在读取文件时忽略特定的行

时间:2018-04-30 08:56:28

标签: c#

在阅读整篇文档时,我需要忽略阅读特定行。 例如,我有大量的数据,我已经使用File.ReadAllText(filePath)读取了它;我需要忽略读取一个特定的行,Say 50并且需要阅读其他行。到目前为止,我有以下代码。

string fileName = "TextFile.config";
string filePath = Path.GetDirectoryName("TextFile.config") + fileName;
string text = File.ReadAllText(filePath);

3 个答案:

答案 0 :(得分:1)

File.ReadLines Method (String)

  

读取文件的行。

List.RemoveAt Method (Int32)

  

删除List的指定索引处的元素。

List.RemoveRange Method (Int32, Int32)

  

从列表中删除一系列元素。

<强>〔实施例

string fileName = "TextFile.config";
string filePath = Path.GetDirectoryName("TextFile.config") + fileName;
var lines = File.ReadLines(filePath).ToList();
lines.RemoveAt(49) // Remove 50th line 
// or
lines.RemoveRange(49,10) // Remove 50th line + 9 more 

答案 1 :(得分:1)

您可以使用ReadLinesWhere,例如:

int[] ignoreLines = { 50 };
IEnumerable<string> relevantLines = File.ReadLines(filePath)
  .Where((line, index) => !ignoreLines.Contains(index + 1));
string resultString = string.Join(Environment.NewLine, relevantLines);

答案 2 :(得分:0)

使用File.ReadAllLines,这将为您提供数组中文件的所有行,然后您可以遍历此数组以检查您要忽略(或不忽略)的行,(使用索引)或者使用string.StartsWith / string.EndsWith