环境: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;
}
}
答案 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进行排序。