检查日期列表中是否存在日期

Tim*_*ear 1 c#

如何从日期列表中仅比较mounth和日期(而不是Year)?

 DateTime[] dates= new DateTime[]
                {
                    new DateTime(DateTime.Now.Year, 1, 1), 
                    new DateTime(DateTime.Now.Year, 5, 1), 
                    new DateTime(DateTime.Now.Year, 5, 8)
                };
// Result
DateTime date_1 = new DateTime(2016, 1, 1); // OK
DateTime date_2 = new DateTime(2022, 1, 1); // OK
DateTime date_3 = new DateTime(2016, 1, 2); // KO
DateTime date_4 = new DateTime(2016, 1, 3); // KO
Run Code Online (Sandbox Code Playgroud)

Ste*_*eve 5

您可以使用IEnumerable扩展名Any检查您的数组是否包含具有所需月份和日期的日期。

DateTime date_1 = new DateTime(2016, 1, 1); 
bool exist = dates.Any (d => d.Month == date_1.Month && d.Day == date_1.Day);
Console.WriteLine(exist);

DateTime date_3 = new DateTime(2016, 1, 2); 
exist = dates.Any (d => d.Month == date_3.Month && d.Day == date_3.Day);
Console.WriteLine(exist);
Run Code Online (Sandbox Code Playgroud)

当然,这需要使用System.Linq