1

如果我有 txt 文件,其内容由制表符分隔,如下所示

 00013  ITEM1   20.00   2   1   01  0.000   2   0.000   0.00    0.000   0.00    
 00014  ITEM2   20.00   1   1   01  0.000   2   0.000   0.00    0.000   0.00

由于00013表示item.Code并且这是唯一值,我想将其item.Code作为参数传递并查找并删除整行。

删除操作后文件内容为

00014   ITEM2   20.00   1   1   01  0.000   2   0.000   0.00    0.000   0.00

再一次,我怎样才能找到并删除 txt 文件中的整行?我应该使用 linq 吗?你会怎么做。

谢谢

4

2 回答 2

4

尝试这个:

void FilterFile(string fileName, string newFileName, string itemCode) 
{
    var mathcedLines = File.ReadLines(fileName).Where(l => !l.StartsWith(itemCode));
    File.WriteAllLines(newFileName, mathcedLines);
}
于 2013-09-07T07:36:54.710 回答
2

是的,您可以使用 LINQ。

var result = from line in File.ReadAllLines(path)
             where !line.StartsWith("00013")
             select line; 
File.WriteAllLines(path + "new", result); 

这将涵盖文件操作。现在至于你的其他问题,我承认我不是 100% 理解你在问什么。

文件操作要考虑的其他选项包括将行加载到 aList中,然后使用FindIndex()then RemoveAt()。此方法仅删除一项,这很好,因为您对我们正在寻找的值是唯一的数据的约束。

于 2013-09-07T07:33:04.943 回答