[英]Generic DateTime List Comparison in C#
我有一個通用的DateTime列表
List<DateTime> **PreviousDates** = //Some List of Dates
現在,我想獲取PreviousDate列表中其Month和Year等於GivenDate的Month&Year的所有日期。 不管是什么日期和時間
我嘗試使用List.Contains()方法,但是它檢查日期的所有部分,我只想檢查Month&Year。
幫我!
感謝Pradeep
您需要使用Where方法。 它將過濾列表,您可以將“年”和“月”與當前日期進行比較。
DateTime currentDate = DateTime.Now;
var filteredDates = previousDates.Where(
d => d.Year == currentDate.Year && d.Month == currentDate.Month);
您可以使用LINQ返回IEnumerable
PreviousDates.Where(d => d.Month == month && d.Year == year);
您可以嘗試類似
DateTime criteria = DateTime.Today;
List<DateTime> filtered = previousDates.Where(dt => dt.Month == criteria.Month && dt.Year == criteria.Year).ToList();
previousDates.Where(d => d.Month == refDate.Month && d.Year == refDate.Year);
您可以為間隔的開始和結束創建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
,但這是一個更復雜,效率較低的狀態。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.