2
0

SortExtensions.cs 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace MediaBrowser.Controller.Sorting
  6. {
  7. public static class SortExtensions
  8. {
  9. private static readonly AlphanumComparator _comparer = new AlphanumComparator();
  10. public static IEnumerable<T> OrderByString<T>(this IEnumerable<T> list, Func<T, string> getName)
  11. {
  12. return list.OrderBy(getName, _comparer);
  13. }
  14. public static IEnumerable<T> OrderByStringDescending<T>(this IEnumerable<T> list, Func<T, string> getName)
  15. {
  16. return list.OrderByDescending(getName, _comparer);
  17. }
  18. public static IOrderedEnumerable<T> ThenByString<T>(this IOrderedEnumerable<T> list, Func<T, string> getName)
  19. {
  20. return list.ThenBy(getName, _comparer);
  21. }
  22. public static IOrderedEnumerable<T> ThenByStringDescending<T>(this IOrderedEnumerable<T> list, Func<T, string> getName)
  23. {
  24. return list.ThenByDescending(getName, _comparer);
  25. }
  26. }
  27. }