C# 需要对日期时间进行排序

C# 需要对日期时间进行排序,c#,C#,我需要将Inputtime(DateTime)和OutPutTime(DateTime)的集合存储在变量中,然后需要根据输入时间进行排序 使用字典或..什么?字典是无序的,所以不-不要使用它 选项: 如果您使用的是.NET4.0,那么可以为每个项目使用元组 如果所有内容都在一个方法中,则可以使用匿名类型 您可以创建自己的结构或类来保存“输入时间,输出时间”对 无论您如何操作,您都可以使用LINQ中的OrderBy,然后在必要时调用ToList或ToArray,或者创建一个列表,然后使用适当的

我需要将Inputtime(DateTime)和OutPutTime(DateTime)的集合存储在变量中,然后需要根据输入时间进行排序

使用字典或..什么?

字典是无序的,所以不-不要使用它

选项:

  • 如果您使用的是.NET4.0,那么可以为每个项目使用
    元组
  • 如果所有内容都在一个方法中,则可以使用匿名类型
  • 您可以创建自己的结构或类来保存“输入时间,输出时间”对
无论您如何操作,您都可以使用LINQ中的OrderBy,然后在必要时调用ToList或ToArray,或者创建一个
列表
,然后使用适当的比较器调用
排序

您可以使用
SortedList
SortedDictionary
,但除非您确实需要按开始时间查找结束时间(而不仅仅是重复它们),否则这些对我来说似乎是不合适的抽象。

字典
是无序的,所以不-不要使用它

选项:

  • 如果您使用的是.NET4.0,那么可以为每个项目使用
    元组
  • 如果所有内容都在一个方法中,则可以使用匿名类型
  • 您可以创建自己的结构或类来保存“输入时间,输出时间”对
无论您如何操作,您都可以使用LINQ中的OrderBy,然后在必要时调用ToList或ToArray,或者创建一个
列表
,然后使用适当的比较器调用
排序

您可以使用
SortedList
SortedDictionary
,但除非您确实需要按开始时间查找结束时间(而不仅仅是迭代),否则这些对我来说似乎是不合适的抽象。

创建一个holder类(或者如果您使用.NET4,只需使用匿名类型或
元组),将它们添加到列表中,然后使用LINQ。大概是这样的:

class Timeslot
{
    public DateTime InputTime { get; set; }
    public DateTime OutputTime { get; set; }
}

public static void Main()
{
    var timeList = new List<Timeslot>(); 
    //populate the list
    var sortedList = timeList.OrderBy(t => t.InputTime).ToList();
}
类时隙
{
公共日期时间输入时间{get;set;}
公共日期时间输出时间{get;set;}
}
公共静态void Main()
{
var timeList=新列表();
//填充列表
var sortedList=timeList.OrderBy(t=>t.InputTime.ToList();
}
创建一个holder类(或者如果您使用的是.NET4,只需使用匿名类型或元组),将它们添加到列表中,然后使用LINQ。大概是这样的:

class Timeslot
{
    public DateTime InputTime { get; set; }
    public DateTime OutputTime { get; set; }
}

public static void Main()
{
    var timeList = new List<Timeslot>(); 
    //populate the list
    var sortedList = timeList.OrderBy(t => t.InputTime).ToList();
}
类时隙
{
公共日期时间输入时间{get;set;}
公共日期时间输出时间{get;set;}
}
公共静态void Main()
{
var timeList=新列表();
//填充列表
var sortedList=timeList.OrderBy(t=>t.InputTime.ToList();
}

使用自定义结构或
元组
。使用自定义结构或
元组