簡體   English   中英

C#中的通用DateTime列表比較

[英]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.YearGivenDate.Monthd.Yeard.MonthWhere ,但這是一個更復雜,效率較低的狀態。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM