追求我在csv文件中删除多行的目标。我的想法是让两个日期之间的日期不包括删除。但是,我怎样才能在两个日期之间迭代天数,并得到字符串的值并用于我的代码以评估包含此字段的csv文件。按日期在csv行中多次删除
private void button2_Click(object sender, EventArgs e)
{
DateTime start = new DateTime(01/25/2015);
DateTime end = new DateTime(01/27/2015);
var dates = new List<DateTime>();
for (var dt = start; dt <= end; dt = dt.AddDays(1))
{
dates.Add(dt);
var oldLines = System.IO.File.ReadAllLines(txtFileName.Text);
var newLines = oldLines.Where(line =>
line.Contains(dates.ToString()));
System.IO.File.WriteAllLines(txtFileName.Text, newLines);
newLines = oldLines.Select(line => new
{
Line = line,
Words = line.Split(' ')
})
.Where(lineInfo => lineInfo.Words.Contains(dates.ToString()))
.Select(lineInfo => lineInfo.Line);
}
}
输入:
“EmployeeCode”, “日期”, “时间”, “类型”
“3434”, “2013年1月22日”, “07:54”,“0 “
”3023“,”01/23/2014“,”07:54“,”0“
”2897“,”01/24/2015“,”07:54“,”0“
” 3734“,”01/25/2015“,”07:54“,”0“
”3168“,”01/26/2015“,”07:54“,”0“
”4863“ 01/26/2015“,”07:55“,”0“
“2513”, “2015年1月27日”, “7点55”, “0”
“2582”, “2015年1月27日”, “7点55”, “0”
OUTPUT:
“EmployeeCode”, “日期”, “时间”, “类型”
“3734”, “2015年1月25日”, “07:54”, “0”
“3168”, “01/26/2015”,“07:54”,“0”
“4863”,“01/26/2015”,“07:55”,“0”
“2513”,“01/27/2015“,”07:55“,”0“
”2582“,”01/27/2015“,”07:55“,”0“
建议,意见,分享代码和想法受到高度赞赏。
如果您包含样本输入文件和样本输出文件(其中样本输出文件是您最喜欢**看到的输出文件),它将有所帮助。 – mjwills
在写入文件之后,是否有一个原因是为'newLines' **赋值? – mjwills
是的,这就是我们可以用空白覆盖那些包含不包括日期选择范围的日期的行的原因。我编辑我的帖子以查看输入和输出。 – LovExpert