如何从日期列表中仅比较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)
您可以使用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