SortExtensions.cs 1.0 KB

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