Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Category
- {
- public int id { get; set; }
- public string slug { get; set; }
- public string title { get; set; }
- public string description { get; set; }
- public int parent { get; set; }
- public int post_count { get; set; }
- }
- List<Category> cats = new List<Category>();
- int[] orderData = new[] {3, 17, 13, 176, 4, 177, 179, 178, 180, 181, 182, 183, 184, 185, 186, 139};
- List<Category> orderedCategories = cats.OrderBy(item => Array.IndexOf(orderData, item.id)).ToList();
- 3, 17, 13, 176, 4, 177, 179, 178, 180, 181, 182, 183, 184, 185, 186, 139
- public class CategorySortOrder
- {
- int CategoryId { get;set;}
- int SortOrder { get;set;}
- }
- var catSortOrder = new[] {
- new CategorySortOrder() { CategoryId = 3, SortOrder = 1 },
- new CategorySortOrder() { CategoryId = 17, SortOrder = 2 }
- // etc.
- }
- var catList = from cat in cats
- join so in catSortOrder on cat.id = so.CategoryId
- select new {
- cat = cat,
- sort_order = so.SortOrder
- };
- var finalist = catList
- .OrderBy(item => item.SortOrder)
- .Select(item => item.cat)
- .ToList();
- var catList = cats.OrderBy(cat => cat.id).ToList();
- var sortedCats=cats.OrderBy(x => x.id).ToList();
- public class CategoryComparer : IComparer<Category>
- {
- List<int> orderNums =
- new List<int> { 3, 17, 13, 176, 4, 177, 179, 178, 180, 181, 182, 183, 184, 185, 186, 139 };
- public int Compare(Category x, Category y)
- {
- var index1 = orderNums.IndexOf(x.id);
- var index2 = orderNums.IndexOf(y.id);
- if (index1 == index2)
- return 0;
- return index1 > index2 ? 1 : -1;
- }
- }
- cats.Sort(new CategoryComparer());
- var sortedCats = cats.OrderBy(x => x, new CategoryComparer());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement