Advertisement
Guest User

Untitled

a guest
Apr 19th, 2014
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. public class Category
  2. {
  3. public int id { get; set; }
  4. public string slug { get; set; }
  5. public string title { get; set; }
  6. public string description { get; set; }
  7. public int parent { get; set; }
  8. public int post_count { get; set; }
  9. }
  10.  
  11. List<Category> cats = new List<Category>();
  12.  
  13. int[] orderData = new[] {3, 17, 13, 176, 4, 177, 179, 178, 180, 181, 182, 183, 184, 185, 186, 139};
  14. List<Category> orderedCategories = cats.OrderBy(item => Array.IndexOf(orderData, item.id)).ToList();
  15.  
  16. 3, 17, 13, 176, 4, 177, 179, 178, 180, 181, 182, 183, 184, 185, 186, 139
  17.  
  18. public class CategorySortOrder
  19. {
  20. int CategoryId { get;set;}
  21. int SortOrder { get;set;}
  22. }
  23.  
  24. var catSortOrder = new[] {
  25. new CategorySortOrder() { CategoryId = 3, SortOrder = 1 },
  26. new CategorySortOrder() { CategoryId = 17, SortOrder = 2 }
  27. // etc.
  28. }
  29.  
  30. var catList = from cat in cats
  31. join so in catSortOrder on cat.id = so.CategoryId
  32. select new {
  33. cat = cat,
  34. sort_order = so.SortOrder
  35. };
  36. var finalist = catList
  37. .OrderBy(item => item.SortOrder)
  38. .Select(item => item.cat)
  39. .ToList();
  40.  
  41. var catList = cats.OrderBy(cat => cat.id).ToList();
  42.  
  43. var sortedCats=cats.OrderBy(x => x.id).ToList();
  44.  
  45. public class CategoryComparer : IComparer<Category>
  46. {
  47. List<int> orderNums =
  48. new List<int> { 3, 17, 13, 176, 4, 177, 179, 178, 180, 181, 182, 183, 184, 185, 186, 139 };
  49.  
  50. public int Compare(Category x, Category y)
  51. {
  52. var index1 = orderNums.IndexOf(x.id);
  53. var index2 = orderNums.IndexOf(y.id);
  54.  
  55. if (index1 == index2)
  56. return 0;
  57.  
  58. return index1 > index2 ? 1 : -1;
  59. }
  60. }
  61.  
  62. cats.Sort(new CategoryComparer());
  63.  
  64. var sortedCats = cats.OrderBy(x => x, new CategoryComparer());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement