所以我想对包含具有自己的日期戳的对象的列表进行分组。
f.前任。 如何获取包含 1 月 26 日和 2 月 25 日之间日期的列表中的所有对象
我需要按这些时期对整年进行分组。我正在处理的是按月分组并尝试挑选溢出的日期
var dictionary = new Dictionary<string, list<object>>()
dictionary.add("jan", dataResult.List.Where(x => x.date.value.month == 1))
dictionary.add("feb", dataResult.List.Where(x => x.date.value.month == 2))
...
but i want something like this :
dictionary.add("26jan-25feb", dataResult.List.Where(..))
dictionary.add("26feb-25mar", dataResult.List.Where(..))
我希望有人熟悉两个日期功能之间的某个范围。但任何帮助将不胜感激。
答案 0 :(得分:-1)
您可以使用如下所示的 DateTime 比较。 一个粗略的例子,
public class NameAndDate
{
public DateTime ThresholdDate { get; set; }
public string Name { get; set; }
}
// Populate the list with some random test data
nameAndDates.Add(new NameAndDate() { Name = "Test1", ThresholdDate = new DateTime(2021, 7, 3) });
nameAndDates.Add(new NameAndDate() { Name = "Test2", ThresholdDate = new DateTime(2021, 1, 13) });
nameAndDates.Add(new NameAndDate() { Name = "Test3", ThresholdDate = new DateTime(2021, 7, 18) });
nameAndDates.Add(new NameAndDate() { Name = "Test4", ThresholdDate = new DateTime(2021, 1, 11) });
nameAndDates.Add(new NameAndDate() { Name = "Test5", ThresholdDate = new DateTime(2021, 2, 9) });
nameAndDates.Add(new NameAndDate() { Name = "Test6", ThresholdDate = new DateTime(2021, 5, 5) });
nameAndDates.Add(new NameAndDate() { Name = "Test7", ThresholdDate = new DateTime(2021, 3, 29) });
nameAndDates.Add(new NameAndDate() { Name = "Test8", ThresholdDate = new DateTime(2021, 3, 19) });
nameAndDates.Add(new NameAndDate() { Name = "Test9", ThresholdDate = new DateTime(2021, 7, 4) });
nameAndDates.Add(new NameAndDate() { Name = "Test10", ThresholdDate = new DateTime(2021, 1, 22) });
// Populate the dictionary
var dictionary = new Dictionary<string, List<NameAndDate>>();
dictionary.Add("26jan-25feb", nameAndDates.Where(x => x.ThresholdDate.Date >= DateTime.Parse("2021-01-26")
&& x.ThresholdDate.Date <= DateTime.Parse("2021-02-25")).ToList());
dictionary.Add("26feb-25mar", nameAndDates.Where(x => x.ThresholdDate.Date >= DateTime.Parse("2021-02-26")
&& x.ThresholdDate.Date <= DateTime.Parse("2021-03-25")).ToList());