static void Main()
        {
            ///向集合添加54张扑克牌,且添加之时就确定好扑克牌的大小,
            ///从大到小依次是(大王,小王,3,2,A,K,Q,J,10,9,8,7,6,5,4)花色从大到小依次为(黑桃,红桃,梅花,方块)

            /// 定义一个盒子的集合,并向其中添加一下盒子对象
            var bxList = new BoxCollection();

            //单独添加大王小王两张牌
            bxList.Add(new Box("", "大王", 1)); //1 代表最大的一张牌
            bxList.Add(new Box("", "小王", 2)); //2 代表第二大的一张牌
            //定义一个装有所有点数的字符串
            string countAll = "32AKQJ10987654";
            //定义一个字符串组装有所有花色
            List <string> Flist = new List <string>();

            Flist.Add("黑桃");
            Flist.Add("红桃");
            Flist.Add("梅花");
            Flist.Add("方块");

            //所以大小这个属性,从3开始添加
            int ra = 3;

            for (int i = 0; i <= 13; i++)
            {
                if (i == 6)
                {
                    string co1 = countAll.Substring(i, 2); //从countAll取出点数(因为10点,是两个字符)
                    for (int i1 = 0; i1 <= 3; i1++)        //为同一点数的牌添加四个花色
                    {
                        string fl = Flist[i1];
                        bxList.Add(new Box(fl, co1, ra));
                        ra++;
                    }
                    i++;
                }
                else
                {
                    string co = countAll.Substring(i, 1); //从countAll取出点数
                    for (int i1 = 0; i1 <= 3; i1++)       //为同一点数的牌添加四个花色
                    {
                        string fl = Flist[i1];
                        bxList.Add(new Box(fl, co, ra));
                        ra++;
                    }
                }
            }

            ///随机显示54张扑克牌
            ///六张牌为一行

            //调用方法得到一组属于[0,53]的随机数组(数组元素数54个)
            var nlist1 = RandomNumber(0, 53);

            //循环输出54张牌,一行六张牌
            //初始化一个变量,用于for循环时记录一行有几张牌
            int js6 = 0;

            for (int i = 0; i < nlist1.Count; i++)
            {
                var w = bxList[nlist1 [i]];
                Console.Write("{0}{1}\t", w.Flower, w.Count);
                js6++;
                //一行满了6张牌,就换行,且初始化js6
                if (js6 == 6)
                {
                    Console.WriteLine();
                    js6 = 0;
                }
            }


            ///创建四个集合,即四个玩家

            var gatherList1 = new BoxCollection();
            var gatherList2 = new BoxCollection();
            var gatherList3 = new BoxCollection();
            var gatherList4 = new BoxCollection();

            ///将牌随机加到四个集合中

            //调用方法得到一组属于[0,53]的随机数组(数组元素数54个)
            var fourList = RandomNumber(0, 53);//此随机数组用于向bxList中随机取出牌

            for (int i = 0; i < fourList.Count; i++, i++, i++, i++)
            {
                if (i <= 51)
                {
                    gatherList1.Add(bxList[fourList[i]]);
                    gatherList2.Add(bxList[fourList[i + 1]]);
                    gatherList3.Add(bxList[fourList[i + 2]]);
                    gatherList4.Add(bxList[fourList[i + 3]]);
                }
                //发牌到第53张牌时执行此操作
                else
                {
                    gatherList1.Add(bxList[fourList[i]]);
                    gatherList2.Add(bxList[fourList[i + 1]]);
                }
            }
            Console.WriteLine();
            Console.Write("按下回车开始发牌");
            Console.WriteLine();
            Console.ReadLine();

            ///对四个集合内的元素按大小排序
            var ranklist1 = gatherList1.OrderBy(s => s.Ranking); //借助扑克牌模型的大小属性
            var ranklist2 = gatherList2.OrderBy(s => s.Ranking); //借助扑克牌模型的大小属性
            var ranklist3 = gatherList3.OrderBy(s => s.Ranking); //借助扑克牌模型的大小属性
            var ranklist4 = gatherList4.OrderBy(s => s.Ranking); //借助扑克牌模型的大小属性

            //输出四个集合中的牌
            Console.Write("玩家一:");
            foreach (var w in ranklist1)
            {
                Console.Write("{0}{1}\t", w.Flower, w.Count);
            }
            Console.ReadLine();
            Console.Write("玩家二:");
            foreach (var w in ranklist2)
            {
                Console.Write("{0}{1}\t", w.Flower, w.Count);
            }
            Console.ReadLine();
            Console.Write("玩家三:");
            foreach (var w in ranklist3)
            {
                Console.Write("{0}{1}\t", w.Flower, w.Count);
            }
            Console.ReadLine();
            Console.WriteLine();
            Console.Write("玩家四:");
            foreach (var w in ranklist4)
            {
                Console.Write("{0}{1}\t", w.Flower, w.Count);
            }



            Console.ReadKey();
        }
 public BoxEnumerator(BoxCollection collection)
 {
     _collection = collection;
     curIndex    = -1;
     curBox      = default(Box);
 }