C#读取从特定时间到特定时间的所有行

  • 本文关键字:定时间 读取 c# linq
  • 更新时间 :
  • 英文 :


我正在尝试获取文本文件中从特定开始时间到特定结束时间的行。例如,如果我的范围TimeSpan是FromHours(10),即上午10:00,则程序应读取包含开始时间"上午10:00"的所有行,直到特定结束时间Span"下午17:00"。我们将非常感谢您的帮助。

输入文件如下:

2016/05/11 10:14:00等等等等等等

2016/05/11 12:14:00 dah-dah-dah等等等等

2016/05/11 16:14:00 dah-dah-dah等等等等

2016/05/11 17:24:00 dah-dah-dah等等等等

文件中每一行的开头都包含日期和时间。

这是我迄今为止的代码:

   var FilePath = new DirectoryInfo("C:\music\playlist.txt");
     List<string> list = new List<string>();
    var StartTime = DateTime.Today.Add(TimeSpan.FromHours(10)).ToShortTimeString();
    var EndTime = DateTime.Today.Add(TimeSpan.FromHours(17)).ToShortTimeString();
       foreach (var line in FilePath )
                {
                    StreamReader read = line.OpenText();
                    while ((inside = read.ReadLine()) != null)
                    {
                        list.Add(inside);
                    };
                    string[] array = list.ToArray();        
       for (int i = 0; i < array.Length; i++)
                {
 if (array[i].Contains(StartTime) and is greater than StartTime, Display lines and stop Displaying if you find EndTime )
                    {
                         Console.WriteLine(array[i]);
                    };
            };

您可以尝试使用Linq:提取日期并过滤

var result = File
  .ReadLines(@"C:musicplaylist.txt")
  .Select(line => line.Split(new char[] {' '}, 3))
  .Select(items -> new {
     date = DateTime.ParseExact(items[0] + " " + items[1], 
                                "yyyy/M/d H:m:s", 
                                CultureInfo.InvariantCulture), 
     text = items[2]
   })
  .Where(item => item.date >= specificStartTime && 
                 item.date <= specificEndTime)
  .Select(item => string.Format("{0} {1}", 
                                item.date.ToString("yyyy/MM/dd HH:mm:ss"), 
                                item.text)); 

相关内容

  • 没有找到相关文章

最新更新