我有这样的列表
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仅获取不同的飞蛾。任何人都可以指出正确的方法吗?
答案 0 :(得分:1)
您正在寻找Distinct方法。
List<string> distinctMonths = result.Select(s =>
Convert.ToDateTime(s.startDate).ToString("MMMM")).Distinct().ToList();
答案 1 :(得分:1)
我认为您可以使用Linq Distinct()函数,如下所示:
List<string> mnamesList= result.Select(s => Convert.ToDateTime(s.startDate).ToString("MMMM")).Distinct().ToList();
答案 2 :(得分:1)
试试这个:
List<string> months = result.Select(s => DateTime.Parse(s.StartDate))
.Select(x=>x.ToString("MMMM"))
.Distinct()
.ToList();