使用Linq获取列表中的月份
本文关键字:列表 Linq 获取 使用 | 更新日期: 2023-09-27 17:54:38
我有一个这样的列表
public class Result
{
public string id { get; set; }
public string name { get; set; }
public string startDate { get; set; } //smaple date 2014-03-31T12:30:03
}
List<Result>
现在我想获得列表startDate
中所有的月份名称。我试过这样写
List<string> mnamesList= result.Select(s => Convert.ToDateTime(s.startDate).ToString("MMMM")).ToList();
正如你所看到的,这个循环将返回重复的月份名称,我不知道如何使用Linq只获取不同的月份。有谁能指出正确的方法吗?
我认为你可以使用Linq Distinct()函数如下:
List<string> mnamesList= result.Select(s => Convert.ToDateTime(s.startDate).ToString("MMMM")).Distinct().ToList();
您正在寻找Distinct方法。
List<string> distinctMonths = result.Select(s =>
Convert.ToDateTime(s.startDate).ToString("MMMM")).Distinct().ToList();
试试这个:
List<string> months = result.Select(s => DateTime.Parse(s.StartDate))
.Select(x=>x.ToString("MMMM"))
.Distinct()
.ToList();