C# c中csv文件中包含日期范围的筛选行#

C# c中csv文件中包含日期范围的筛选行#,c#,csv,C#,Csv,我是c#新手,也处理csv文件。我需要过滤csv文件使用的日期范围 csv文件的内容如下所示 “员工代码”、“日期”、“时间”、“类型” “3434”、“01/22/2013”、“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”、“

我是c#新手,也处理csv文件。我需要过滤csv文件使用的日期范围

csv文件的内容如下所示

“员工代码”、“日期”、“时间”、“类型”
“3434”、“01/22/2013”、“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”、“01/27/2015”、“07:55”、“0”
“2582”、“01/27/2015”、“07:55”、“0”

这应该是输出:

“员工代码”、“日期”、“时间”、“类型”
“3734”、“01/25/2015”、“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”

壳牌可以做到这一点,但c#不能做到这一点是不公平的。因为在互联网上搜索此类问题后,没有找到解决方案

正在尝试此代码

 DateTime dFm = new DateTime(2015, 01, 25);
 DateTime dTo = new DateTime(2015, 01, 27);

 var lines = System.IO.File.ReadAllLines(txtFileName.Text); 
 var data = lines
            .Skip(1)
            .Select(x => new
            {
                EmpCode = Int32.Parse(x.Split(new string[] { @""",""", @"""" 
             }, StringSplitOptions.RemoveEmptyEntries)[0]),
                Date = DateTime.ParseExact(
                string.Concat(x.Split(new string[] { @""",""", @"""" }, 
                StringSplitOptions.RemoveEmptyEntries)[1], " ",
                x.Split(new string[] { @""",""", @"""" }, 
                StringSplitOptions.RemoveEmptyEntries)[2]),
                "MM/dd/yyyy HH:mm", 
                System.Globalization.CultureInfo.InvariantCulture),
                Type = x.Split(new string[] { @""",""", @"""" }, 
                StringSplitOptions.RemoveEmptyEntries)[3]
            })
            .Where(x => x.Date >= dFm && x.Date <= dTo)
            .ToList();
           }
DateTime-dFm=新日期时间(2015,01,25);
DateTime dTo=新的日期时间(2015,01,27);
var lines=System.IO.File.ReadAllLines(txtFileName.Text);
var数据=行
.Skip(1)
.选择(x=>new
{
EmpCode=Int32.Parse(x.Split(新字符串[]{@“,”,@“)
},StringSplitOptions.RemoveEmptyEntries)[0],
Date=DateTime.ParseExact(
string.Concat(x.Split(新字符串[]{@“”,@“”,@“”),
StringSplitOptions.RemoveEmptyEntries)[1],“”,
x、 拆分(新字符串[]{@”“,@”“,@”“},
StringSplitOptions.RemoveEmptyEntries)[2],
“MM/dd/yyyy HH:MM”,
系统、全球化、文化信息、不变量文化),
Type=x.Split(新字符串[]{@“”,@“”,@“”),
StringSplitOptions.RemoveEmptyEntries[3]
})

。其中(x=>x.Date>=dFm和&x.Date通过以下方式实现您的目标相当容易:

var-dFm=新日期时间(2015,01,25);
var dTo=新日期时间(2015,01,27);
使用(var reader=File.OpenText(@“sample.csv”))
{
var csv=新的CsvReader(读卡器);
而(csv.Read())
{
变量日期=csv.GetField(“日期”);
如果(日期>=dFm&&

日期你是怎么认为C不能的?你试着写了什么代码?C可以,你不能:)呵呵,对像我这样的初学者来说是的。我回答的第一行是链接。它会带你到项目的网站上,在那里你可以找到库的所有详细信息。你能为我提供if语句吗?我只是举个例子。你的意思是这样的if语句:
if(date>=dFm&&date是的。想把那些在范围内的行写入文件吗。
var dFm = new DateTime(2015, 01, 25);
var dTo = new DateTime(2015, 01, 27);
using (var reader = File.OpenText(@"sample.csv"))
{
    var csv = new CsvReader(reader);
    while (csv.Read())
    {
        var date = csv.GetField<DateTime>("Date");
        if (date >= dFm &&
            date <= dTo)
        {
            // process the filtered out records
        }
    }
}