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

时间:2013-04-29 19:24:17

标签: c#

环境:Visual Studio 2008 SP1,FX3.5 下面的方法显示了我如何按日期对列表进行排序。有没有办法让它更通用?例如,我可以让它接受字符串列表或日期列表然后排序。我想也许可以使用DateTime.TryParse,如果它是一个日期,那么列表是一个日期,然后按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;
    }
}

1 个答案:

答案 0 :(得分:5)

您的方法可以轻松更改为:

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进行排序。