2011-06-01 50 views
6

如何在两个日期时间之间过滤数据。在这里,我正在过滤目录中的文本文件长度..我需要筛选所选日期之间的文本文件。使用LINQ在两个日期之间过滤数据

DateTime startDate = dateTimePicker1.Value; 
DateTime endDate = dateTimePicker2.Value; 
var queryList1Only = from i in di.GetFiles("*.txt", SearchOption.AllDirectories) 
        select i.Length; 

任何建议?

回答

5

使用WHERE子句:

DateTime startDate = dateTimePicker1.Value; 
DateTime endDate = dateTimePicker2.Value; 

var queryList1Only = from i in di.GetFiles("*.txt", SearchOption.AllDirectories) 
        where i.GetCreationTime() > startDate && i.GetCreationTime() < endDate 
        select i.Length; 

相反的GetCreationTime你可以使用GetLastWriteTimeGetLastAccessTime

我建议使用where子句检查几个例子,以全面了解它是如何工作的here

+0

感谢你的例子。对LINQ来说是一个新东西。将学习LINK(Q) – bala3569 2011-06-01 10:19:14

5

那么,where条款怎么样?

var query = from i in di.GetFiles("*.txt", SearchOption.AllDirectories) 
      where (i.GetCreationTime() > startDate && i.GetCreationTime() < endDate) 
      select i.Length; 
2
from fi in new DirectoryInfo(@"c:\path").EnumerateFiles("*.txt") 
where fi.CreationTime > startDate and fi.CreationTime < endDate) 
select fi.FullName; 
相关问题