在C#中,对列表中的连续日期进行分组的最佳方法是什么?

里奥拉

我有一个日期列表,我想按连续几天的项目分组

因此,如果在列表中我有以下日期:

2013年12月31日
20141月1日2014年
1月2日2014年
2月1日2014年
2月2日2014年
2月16日2014年
3月13日

我想提出一种将其分组的方法,这样我得到:

组1:
2013年12月31日
2014年
1月1日2014年1月2日

组2:
2014年
2月1日,2014年2月2日

组3:
2014年2月16日

组4:2014年3月13日

如您所见,分组基于连续几天的项目。

在C#中,最好的方法是获取此列表并将其转换为这些组?

阿维·特纳

以下代码的逻辑很简单,对列表进行排序并检查天数增量是否大于1。如果是,则为其创建一个新组:

创建测试日期:

//Dates for testing
 List<DateTime> dates = new List<DateTime>()
 { 
      new DateTime(2013,12,31),
      new DateTime(2014,2,2),
     new DateTime(2014,1,1),
     new DateTime(2014,1,2),
     new DateTime(2014,2,1),               
     new DateTime(2014,2,16),
     new DateTime(2014,3,13),
 };

并创建组:

 dates.Sort();
 //this will hold the resulted groups
 var groups = new List<List<DateTime>>();
 // the group for the first element
 var group1 = new List<DateTime>(){dates[0]};
 groups.Add(group1);

 DateTime lastDate = dates[0];
 for (int i = 1; i < dates.Count; i++)
 {
     DateTime currDate = dates[i];
     TimeSpan timeDiff = currDate - lastDate;
     //should we create a new group?
     bool isNewGroup = timeDiff.Days > 1;
     if (isNewGroup)
     {
         groups.Add(new List<DateTime>());
     }
     groups.Last().Add(currDate);
     lastDate = currDate;
 }

并输出:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

转换日期列表以便在包含连续几天的情况下分组显示的最佳方法是什么?

来自分类Dev

与C#开发人员就API中的错误进行沟通的最佳方法是什么?

来自分类Dev

在 Pandas 中对数据进行分组和排序的最佳方法是什么?

来自分类Dev

在C#中,查看列表是否包含另一个列表的最佳方法是什么?

来自分类Dev

在Python中对连续的日期进行分组

来自分类Dev

在C#中无休止地轮换列表中的3个项目的最佳方法是什么

来自分类Dev

将c#中的所有日期时间字段转换为已登录用户的时区的最佳方法是什么?

来自分类Dev

存储日期列表的最佳方法是什么

来自分类Dev

用其他布局中的列表进行编码的最佳方法是什么?

来自分类Dev

使用javascript对元素列表进行分类/分组和排序的最佳方法是什么?

来自分类Dev

使用javascript对元素列表进行分类/分组和排序的最佳方法是什么?

来自分类Dev

在JSON中存储日期/时间的最佳方法是什么?

来自分类Dev

在Rails表单对象中处理日期的最佳方法是什么

来自分类Dev

将日期存储在saveInstanceState中的最佳方法是什么?

来自分类Dev

在Firestore中存储日期的最佳方法是什么?

来自分类Dev

在Rails表单对象中处理日期的最佳方法是什么

来自分类Dev

在documentdb中存储日期时间值的最佳方法是什么?

来自分类Dev

在C ++ 11中解析毫秒日期时间的最佳方法是什么

来自分类Dev

在R中对函数进行算术运算的最佳方法是什么?

来自分类Dev

在Linux中对android应用进行编程的最佳方法是什么?

来自分类Dev

在JAVA中对TIME数组进行排序的最佳方法是什么

来自分类Dev

在列表中组织JPanel的最佳方法是什么?

来自分类Dev

从键列表中获取对象的最佳方法是什么?

来自分类Dev

在字典中追加列表的最佳方法是什么?

来自分类Dev

在Java中迭代列表并退出的最佳方法是什么

来自分类Dev

在C ++中,在库之间进行相似类转换的最佳方法是什么?

来自分类Dev

在C#中处理异常的最佳实践是什么?

来自分类Dev

在C#中,确定小数点“是否为整数”的最佳方法是什么?

来自分类Dev

在C#中,解析此WIKI标记的最佳方法是什么?

Related 相关文章

  1. 1

    转换日期列表以便在包含连续几天的情况下分组显示的最佳方法是什么?

  2. 2

    与C#开发人员就API中的错误进行沟通的最佳方法是什么?

  3. 3

    在 Pandas 中对数据进行分组和排序的最佳方法是什么?

  4. 4

    在C#中,查看列表是否包含另一个列表的最佳方法是什么?

  5. 5

    在Python中对连续的日期进行分组

  6. 6

    在C#中无休止地轮换列表中的3个项目的最佳方法是什么

  7. 7

    将c#中的所有日期时间字段转换为已登录用户的时区的最佳方法是什么?

  8. 8

    存储日期列表的最佳方法是什么

  9. 9

    用其他布局中的列表进行编码的最佳方法是什么?

  10. 10

    使用javascript对元素列表进行分类/分组和排序的最佳方法是什么?

  11. 11

    使用javascript对元素列表进行分类/分组和排序的最佳方法是什么?

  12. 12

    在JSON中存储日期/时间的最佳方法是什么?

  13. 13

    在Rails表单对象中处理日期的最佳方法是什么

  14. 14

    将日期存储在saveInstanceState中的最佳方法是什么?

  15. 15

    在Firestore中存储日期的最佳方法是什么?

  16. 16

    在Rails表单对象中处理日期的最佳方法是什么

  17. 17

    在documentdb中存储日期时间值的最佳方法是什么?

  18. 18

    在C ++ 11中解析毫秒日期时间的最佳方法是什么

  19. 19

    在R中对函数进行算术运算的最佳方法是什么?

  20. 20

    在Linux中对android应用进行编程的最佳方法是什么?

  21. 21

    在JAVA中对TIME数组进行排序的最佳方法是什么

  22. 22

    在列表中组织JPanel的最佳方法是什么?

  23. 23

    从键列表中获取对象的最佳方法是什么?

  24. 24

    在字典中追加列表的最佳方法是什么?

  25. 25

    在Java中迭代列表并退出的最佳方法是什么

  26. 26

    在C ++中,在库之间进行相似类转换的最佳方法是什么?

  27. 27

    在C#中处理异常的最佳实践是什么?

  28. 28

    在C#中,确定小数点“是否为整数”的最佳方法是什么?

  29. 29

    在C#中,解析此WIKI标记的最佳方法是什么?

热门标签

归档