我有一个通用日期时间列表
List<DateTime> **PreviousDates** = //Some List of Dates
现在我想获取 PreviousDates 列表中的所有日期,其中月份和年份等于GivenDate的月份和年份。年。无论什么日子&amp;时间到了......
我尝试使用List.Contains()方法,但它会检查日期的所有部分,我只想检查月份和年份..
帮助我!
由于 普拉迪普
答案 0 :(得分:1)
您需要使用Where方法。它将过滤列表,您可以将年份和月份与当前日期进行比较。
DateTime currentDate = DateTime.Now;
var filteredDates = previousDates.Where(
d => d.Year == currentDate.Year && d.Month == currentDate.Month);
答案 1 :(得分:1)
您可以使用LINQ返回IEnumerable
PreviousDates.Where(d => d.Month == month && d.Year == year);
答案 2 :(得分:1)
您可以尝试类似
的内容DateTime criteria = DateTime.Today;
List<DateTime> filtered = previousDates.Where(dt => dt.Month == criteria.Month && dt.Year == criteria.Year).ToList();
答案 3 :(得分:0)
previousDates.Where(d => d.Month == refDate.Month && d.Year == refDate.Year);
答案 4 :(得分:0)
您可以为间隔的开始和结束创建DateTime
值:
DateTime start = new DateTime(GivenDate.Year, GivenDate.Month, 1);
DateTime end = start.AddMonths(1);
现在您可以轻松选择区间内的项目:
List<DateTime> inside =
PreviousDates
.Where(d => d >= start && d < end)
.ToList();
(您当然可以将GivenDate.Year
和GivenDate.Month
值与d.Year
中的d.Month
和Where
进行比较,但这样会更复杂,效率更低条件。)