2011-06-01 28 views
6

Cómo filtrar datos entre dos fechas y horas. Aquí estoy filtrando la longitud del archivo de texto en un directorio ... Necesito filtrar el archivo de texto entre la fecha seleccionada.Filtrar datos entre dos fechas utilizando LINQ

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

¿Alguna sugerencia?

Respuesta

5

utilizar la cláusula Donde:

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; 

En lugar de GetCreationTime usted podría utilizar GetLastWriteTime o GetLastAccessTime.

Recomiendo ver algunos ejemplos utilizando la cláusula where para obtener una comprensión completa de cómo funciona todo here.

+0

Gracias por sus ejemplos ... Soy nuevo en LINQ .. Aprenderé de ese ENLACE (Q) – bala3569

5

Bien, ¿qué tal una cláusula 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;