3

そこで、宝くじに当選したかどうかを自動的にチェックするものを作ろうとしています。

私がプレイしているこのゲームには 25 の数字があり、15 を選択できます。

数字を15個当てたら勝ち!(順番通りである必要はありません)

「TodosJogos」と呼ばれるすべてのゲームと「Jogado」と呼ばれるギャンブルのリストがあります。

今、私はこのようにやっています:(これはひどいものだと思います)

 private void VerificaVitoria(Jogo Jogado, string TipoJogo)
        {
            bool Ganhou;
            List<Jogo> LstClassificadas = new List<Jogo>();

            LstClassificadas = TodosJogos.Where(x => x.N1 == Jogado.N1 ||
                x.N1 == Jogado.N2 ||
                x.N1 == Jogado.N3 ||
                x.N1 == Jogado.N4 ||
                x.N1 == Jogado.N5 ||
                x.N1 == Jogado.N6 ||
                x.N1 == Jogado.N7 ||
                x.N1 == Jogado.N8 ||
                x.N1 == Jogado.N9 ||
                x.N1 == Jogado.N10 ||
                x.N1 == Jogado.N11 ||
                x.N1 == Jogado.N12 ||
                x.N1 == Jogado.N13 ||
                x.N1 == Jogado.N14 ||
                x.N1 == Jogado.N15).ToList<Jogo>();

            LstClassificadas = LstClassificadas.Where(x => x.N2 == Jogado.N1 ||
               x.N2 == Jogado.N2 ||
               x.N2 == Jogado.N3 ||
               x.N2 == Jogado.N4 ||
               x.N2 == Jogado.N5 ||
               x.N2 == Jogado.N6 ||
               x.N2 == Jogado.N7 ||
               x.N2 == Jogado.N8 ||
               x.N2 == Jogado.N9 ||
               x.N2 == Jogado.N10 ||
               x.N2 == Jogado.N11 ||
               x.N2 == Jogado.N12 ||
               x.N2 == Jogado.N13 ||
               x.N2 == Jogado.N14 ||
               x.N2 == Jogado.N15).ToList<Jogo>();

            LstClassificadas = LstClassificadas.Where(x => x.N3 == Jogado.N1 ||
                 x.N3 == Jogado.N2 ||
                 x.N3 == Jogado.N3 ||
                 x.N3 == Jogado.N4 ||
                 x.N3 == Jogado.N5 ||
                 x.N3 == Jogado.N6 ||
                 x.N3 == Jogado.N7 ||
                 x.N3 == Jogado.N8 ||
                 x.N3 == Jogado.N9 ||
                 x.N3 == Jogado.N10 ||
                 x.N3 == Jogado.N11 ||
                 x.N3 == Jogado.N12 ||
                 x.N3 == Jogado.N13 ||
                 x.N3 == Jogado.N14 ||
                 x.N3 == Jogado.N15).ToList<Jogo>();

            //.....

            Ganhou = LstClassificadas.Count > 0 ? true : false;


            if (Ganhou)
            {
                MessageBox.Show("You won in the game: " + TipoJogo);
            }

        }

これは、次のクエリに似ています。

select * from jogos
where n1 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n2 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n3 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n4 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n5 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n6 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n7 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n8 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n9 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n10 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n11 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n12 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n13 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n14 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)
and n15 in(8,18,16,7,5,20,9,6,10,17,22,3,14,21,15)

それを行うより良い方法はありますか?

4

2 に答える 2