在一个c#方法中排序日期或字符串类型

本文关键字:排序 日期 类型 字符串 方法 一个 | 更新日期: 2023-09-27 18:11:18

环境:Visual Studio 2008 SP1, FX3.5下面的方法展示了如何按日期对列表进行排序。有办法让它更通用吗?例如,我可以让它接受字符串列表或日期列表,然后排序。我想用DateTime。TryParse,如果它是一个日期,那么list是一个日期,然后按DateTime排序,否则它是一个字符串列表,然后按那个排序。

public class Helpers
{
    public static List<DateTime> SortAscending(List<DateTime> list)
    {
    list.Sort((a, b) => a.CompareTo(b));
    return list;
    }
    public static List<DateTime> SortDescending(List<DateTime> list)
    {
    list.Sort((a, b) => b.CompareTo(a));
    return list;
    }
}

在一个c#方法中排序日期或字符串类型

您的方法可以很容易地更改为:

public static List<T> SortAscending(List<T> list) where T : IComparable
{
    list.Sort((a, b) => a.CompareTo(b));
    return list;
}
public static List<T> SortDescending(List<T> list) where T : IComparable
{
    list.Sort((a, b) => b.CompareTo(a));
    return list;
}

这将允许您对实现IComparable的任何类型的List进行排序