C# 如何从文本文件中删除重复元素

C# 如何从文本文件中删除重复元素,c#,C#,我有一个文本文件,需要从中删除一个重复元素。它总是以前缀:62M:开头,以后缀:86:结尾。删除的文本应包含前缀和前缀后面的所有内容,直到后缀,但不包含前缀 因此,处理前的主体如下所示: 74fchgf :62M:C200918PLN81,67 -} {1:F01068070965}{2:0940068070965 N}{4: :20:200918/10901694 :25:PL8710 :28C:20181/2 :60M:C200918PLN1225581,67 :61:200918CN202

我有一个文本文件,需要从中删除一个重复元素。它总是以前缀:62M:开头,以后缀:86:结尾。删除的文本应包含前缀和前缀后面的所有内容,直到后缀,但不包含前缀

因此,处理前的主体如下所示:

74fchgf
:62M:C200918PLN81,67
-}
{1:F01068070965}{2:0940068070965 N}{4:
:20:200918/10901694
:25:PL8710
:28C:20181/2
:60M:C200918PLN1225581,67
:61:200918CN2024,00FCHGF
:86:BICC?00UZNANIE增值税(SP)?20/增值税
它应该是这样的:

74fchgf
:86:BICC?00UZNANIE增值税(SP)?20/增值税
删除的部分可能会出现多次,其内容可能会有所不同。只有前缀和结束后缀是固定的


我该怎么做?提前谢谢。

使用从
文件中拉出的
foreach
循环来循环文件。ReadLines(path)
。如果行
开始使用(“:62M:”)
将布尔
忽略
切换为
。如果行
开始使用(:86:”)
将布尔值
忽略
切换为
。完成这两个字符串评估后,检查
忽略
变量的状态以了解如何操作:如果忽略
,则不要输出该行,否则输出该行(将其收集到列表中,将其写入输出等)


使用
foreach
循环从
file.ReadLines(path)
拖动文件。如果行
StartsWith(“:62M:”)
将布尔值
忽略
切换为
。如果行
StartsWith(“:86:”)
将布尔值
忽略
切换为
。完成这两个字符串评估后,检查
忽略
变量的状态以了解如何操作:如果忽略
,则不要输出该行,否则输出该行(将其收集到列表中,将其写入输出等)

bool ignoring = false;
foreach(var line in File.ReadLines(...)){

  if(line.StartsWith(...))
    ignoring = true;
  else if(line.StartsWith(...))
    ignoring = false;

  if(ignoring)
    continue;

  //do whatever with the line here
}