Я предполагаю, что у вас проблема, потому что date1
содержит только дату, а ваша база данных содержит полные значения даты / времени. Чтобы найти совпадения, вам нужно выбрать один из следующих подходов:
1) Удалите информацию о времени из значений базы данных перед сравнением их с вашей целью
2) Преобразуйте вашу цель в диапазон, затем найдите значения базы данных в этом диапазоне.
List<DateTime> dateTimes = new List<DateTime>();
dateTimes.Add(DateTime.Parse("7/20/2008 7:14:53 AM"));
dateTimes.Add(DateTime.Parse("7/20/2008 12:12:01 AM"));
dateTimes.Add(DateTime.Parse("7/21/2008 9:00:00 AM"));
dateTimes.Add(DateTime.Parse("7/20/2009 7:14:53 AM"));
DateTime targetDate = Convert.ToDateTime("7/20/2008");
// Remove time info from data in database
var matchingDates = from date in dateTimes
where date.Date == targetDate
select date;
// Or use your target date to create a range
DateTime rangeStart = new DateTime(targetDate.Year, targetDate.Month, targetDate.Day, 0, 0, 0);
DateTime rangeEnd = new DateTime(targetDate.Year, targetDate.Month, targetDate.Day, 23, 59, 59);
var matchingDates2 = from date in dateTimes
where (date >= rangeStart) && (date <= rangeEnd)
select date;