c# 多条件排序


  1 using Landlords;
  2 using System;
  3 using System.Collections.Generic;
  4 using System.Linq;
  5 using System.Text;
  6 using System.Threading.Tasks;
  7 
  8 namespace Landlords
  9 {
 10     /// <summary>
 11     /// 数据信息
 12     /// </summary>
 13     public class Info 
 14     {
 15         public int vip;
 16         public int lv;
 17         public int line;
 18     }
 19 
 20     class Program
 21     {
 22         static void Main(string[] args)
 23         {
 24             int[] vip = new int[]{3,5,1,4,0,0,6,2,10,0};
 25             int[] lv = new int[]{13,25,1,24,10,30,16,2,10,20};
 26             int[] line = new int[]{1,2,1,2,1,1,1,2,1,2};
 27             List<Info> list = new List<Info>();
 28             for (int i = 0; i < 10;++i )
 29             {
 30                 Info info = new Info();
 31                 info.vip = vip[i];
 32                 info.lv = lv[i];
 33                 info.line = line[i];
 34                 list.Add(info);
 35             }
 36             list.Sort(Line);
 37             //在线排序打印
 38             for (int i = 0; i < list.Count;++i )
 39             {
 40                 Console.WriteLine("1:{0} - {1} - {2}",list[i].vip,list[i].lv,list[i].line);
 41             }
 42             VipSort(list);
 43             //VIP排序打印
 44             for (int i = 0; i < list.Count; ++i)
 45             {
 46                 Console.WriteLine("2:{0} -{1} - {2}",list[i].vip, list[i].lv, list[i].line);
 47             }
 48             LvSort(list);
 49             //等级排序打印
 50             for (int i = 0; i < list.Count; ++i)
 51             {
 52                 Console.WriteLine("3:{0} -{1} - {2}",list[i].vip, list[i].lv, list[i].line);
 53             }
 54            // StateManager.Instance.SetState(StateManager.GAME_STATE.START);
 55             Console.Read();
 56         }
 57         /// <summary>
 58         /// VIP排序
 59         /// </summary>
 60         /// <param name="list"></param>
 61         static void VipSort(List<Info> list)
 62         {
 63             for (int i = 0; i < list.Count; ++i)
 64             {
 65                 for (int j = i + 1; j < list.Count; ++j)
 66                 {
 67                     //判断在线和在线对比,不在线和不在线对比
 68                     if (list[i].vip < list[j].vip && list[i].line == list[j].line)
 69                     {
 70                         Info info = list[j];
 71                         list[j] = list[i];
 72                         list[i] = info;
 73                     }
 74                 }
 75 
 76             }
 77         }
 78         /// <summary>
 79         /// 等级排序
 80         /// </summary>
 81         /// <param name="list"></param>
 82         static void LvSort(List<Info> list)
 83         {
 84             for (int i = 0; i < list.Count; ++i)
 85             {
 86                 for (int j = i + 1; j < list.Count; ++j)
 87                 {
 88                     //判断在线和VIP等级相同才排序
 89                     if (list[i].lv < list[j].lv && list[i].vip == list[j].vip && list[i].line == list[j].line)
 90                     {
 91                         Info info = list[j];
 92                         list[j] = list[i];
 93                         list[i] = info;
 94                     }
 95                 }
 96 
 97             }
 98         }
 99         /// <summary>
100         /// 在线排序
101         /// </summary>
102         /// <param name="e1"></param>
103         /// <param name="e2"></param>
104         /// <returns></returns>
105         static int Line(Info e1, Info e2)
106         {
107             return e1.line.CompareTo(e2.line);
108         }
109       
110     }
111 }

 

 

1.排序是否在线 2.排序VIP等级3.排序等级

posted @ 2014-10-21 13:33  kadajEvo  阅读(1462)  评论(0)    收藏  举报