📅  最后修改于: 2023-12-03 15:08:14.910000             🧑  作者: Mango
在C#中,有时候需要从一组日期中提取出不同的年份。下面介绍两种方法实现这个功能。
一种简洁的方法是使用LINQ的Distinct方法,以下是使用该方法的代码片段:
List<DateTime> dates = new List<DateTime> { new DateTime(2021, 1, 1), new DateTime(2021, 3, 21), new DateTime(2022, 5, 15), new DateTime(2022, 8, 1) };
var distinctYears = dates.Select(date => date.Year).Distinct();
foreach (var year in distinctYears)
{
Console.WriteLine(year);
}
代码解释:
另一种方法是使用HashSet去重,以下是使用该方法的示例代码:
List<DateTime> dates = new List<DateTime> { new DateTime(2021, 1, 1), new DateTime(2021, 3, 21), new DateTime(2022, 5, 15), new DateTime(2022, 8, 1) };
HashSet<int> years = new HashSet<int>();
foreach (DateTime date in dates)
{
years.Add(date.Year);
}
foreach (var year in years)
{
Console.WriteLine(year);
}
代码解释:
以上两种方法都可实现从C#中的不同年份列表中提取唯一年份的功能,选择哪一种方法主要取决于个人喜好和程序的性能要求。
参考文献: [Microsoft Docs: Distinct()] (https://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.distinct?view=net-5.0) Microsoft Docs: HashSet<> Class (https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.hashset-1?view=net-5.0)