C# 删除带有其他日期的行

C# 删除带有其他日期的行,c#,winforms,datetime,split,C#,Winforms,Datetime,Split,我有很多这样的台词 PrId Name Quantity Price Date 3 Milk 2 100 23-08-15 我从txt文件导入的 我把所有的线串起来,并为每一个类似的东西做了所有的参数 id is lines[i].Split('\t')[0] Name is lines[i].Split('\t')[1] Quantity is lines[i].Split('\t')[2] Price is lines[i].Split('

我有很多这样的台词

PrId    Name  Quantity  Price   Date
  3     Milk    2        100   23-08-15
我从txt文件导入的 我把所有的线串起来,并为每一个类似的东西做了所有的参数

id is lines[i].Split('\t')[0]
Name is lines[i].Split('\t')[1]
Quantity is lines[i].Split('\t')[2]
Price is lines[i].Split('\t')[3]
and date is lines[i].Split('\t')[4]

如何删除所有行(日期为2015年8月23日的行除外)可以使用简单的
Linq
语句

var date = DateTime.ParseExact("23-08-15", "dd-MM-yy", null);

var filterdLines = File.ReadAllLines(@"inputfile")
                .Where(s => DateTime.ParseExact(s.Split('\t')[4], "dd-MM-yy", null) == date)
                .ToList();

File.WriteAllLine("outputfile", filterdLines);

您应该遵循以下步骤:

1)识别带有日期的行
23-08-15
。这可以使用以下功能完成:

DateTime buffer;
bool parseOk = DateTime.TryParseExact(lines[i].Split('\t')[4], "dd/MM/yy", CultureInfo.InvariantCulture, null, out buffer);

if (buffer != new DateTime(2015, 08, 23))
    // skip the line
2)写回筛选的行。不清楚是否需要这样做,但如果必须写回文件中的行,可以使用

File.WriteAllLines("outputfile", filteredLines);