zoukankan      html  css  js  c++  java
  • c# 数组自定义排序

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace OrderList
    {
        class Program
        {
            public class Test
            {
                public int Id { get; set; }
                public string Name { get; set; }
            }
            private static List<Test> ListStock()
            {
                List<Test> foos = new List<Test>
                {
                    new Test
                    { 
                        Id = 0,
                        Name = "a" 
                    }, 
                    new Test
                    { 
                        Id = 0, 
                        Name = "b" 
                    },
                    new Test
                    { 
                        Id = 1,
                        Name = "c" 
                    }, 
                    new Test
                    { 
                        Id = 2, 
                        Name = "d" 
                    },
                    new Test
                    {
                        Id = 2,
                        Name = "e"
                    },
                    new Test
                    {
                        Id = 2,
                        Name = "f"
                    },
                    new Test
                    {
                        Id = 2,
                        Name = "g"
                    }
    
                };
                return foos;
            }
            static void Main(string[] args)
            {                     
                List<Test> t = ListStock();
                Console.WriteLine("排序前");
                foreach (var v in t)
                {               
                    Console.WriteLine(string.Format("Id:{0},Name:{1}", v.Id, v.Name));
                }
                Console.WriteLine("-");
                int[] orderArr = new int[] { 1,2,2,2,2,1,0,0};
                t = t.OrderBy(e =>
                {
                    var index = 0;
                    index = Array.IndexOf(orderArr, e.Id);
                    if (index != -1) { return index; }
                    else
                    {
                        return int.MaxValue;
                    }
    
                }).ToList();
              
                Console.WriteLine("排序后");
                //foreach (var v in t)
                //{
                //    Console.WriteLine(string.Format("Id:{0},Name:{1}", v.Id, v.Name));
                //}
                Console.WriteLine("-");
                t.ForEach(p =>
                {
                    Console.WriteLine(string.Format("Id:{0},Name:{1}", p.Id, p.Name));
                });
                Console.WriteLine("-");
                Console.ReadLine();
            }
        }
    }
    排序前
    Id:0,Name:a
    Id:0,Name:b
    Id:1,Name:c
    Id:2,Name:d
    Id:2,Name:e
    Id:2,Name:f
    Id:2,Name:g
    -
    排序后
    -
    Id:1,Name:c
    Id:2,Name:d
    Id:2,Name:e
    Id:2,Name:f
    Id:2,Name:g
    Id:0,Name:a
    Id:0,Name:b
    -
    

      

  • 相关阅读:
    CodeForces
    CodeForces
    CodeForces 718C && HDU 3572 && Constellation
    CodeForces
    USACO 5.4 tour的dp解法
    10.22~10.28一周经典题目整理(meeting,BZOJ4377,POJ3659)
    codeforces 724D
    codeforces 724C
    hdu5909 Tree Cutting
    hdu5822 color
  • 原文地址:https://www.cnblogs.com/dqh123/p/15358677.html
Copyright © 2011-2022 走看看