1

环境: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;
    }
}
4

1 回答 1

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

于 2013-04-29T19:25:30.630 回答