none
List<int> obter numeros repetidos e saber quando é uma sequencia RRS feed

  • Pergunta

  • Boa tarde pessoal, tudo bem?

    Estou com uma dúvida, acredito que seja bem simples de resolver, mas estou quebrando a cabeça.
    Eu tenho um list de int, por exemplo:
    2-3-4-5-5 
    - Como faço para saber que os números 2-3-4 é uma sequencia? 
    - Como faço para saber que os 5-5 são repetidos? E depois de saber isso, preciso somar os 2 valores dando um resultado igual a 10.

    Esses números acima podem variar, por exemplo: 4-5-6-1-3 (nesse caso são 4 numero na sequencia) (mas sempre vão ser de 1 a 6).

    Alguém tem uma ideia de como posso trabalhar com eles no C#?

    Um Abraço
    Arthur


    • Editado Arthur_1986 sexta-feira, 25 de maio de 2018 16:57
    sexta-feira, 25 de maio de 2018 16:56

Respostas

  • Olá, veja se este código lhe ajuda.
    Abs!
    List<int> ListaControle = new List<int>() { 1, 2, 3, 4, 5, 6 };
                //List<int> ListaVariavel = new List<int>() { 2, 3, 4, 5, 5 };
                List<int> ListaVariavel = new List<int>() { 4, 5, 6, 1, 3 };
                ListaVariavel.Sort(); //Expressao LINQ para ordenacao
                List<int> ListaDuplicados = new List<int>();
                int Soma = 0;
                int NumeroDuplicado = 0;
                string NumerosOrdenados = string.Empty;
                foreach (var Controle in ListaControle)
                {
                    foreach (var Variavel in ListaVariavel)
                    {
                        if (Variavel == Controle)
                        {
                            ListaDuplicados.Add(Variavel);
                            NumeroDuplicado = Variavel;
                        }
                    }
                    if (ListaDuplicados.Count == 0 || ListaDuplicados.Count == 1)
                    {
                        ListaDuplicados = new List<int>();
                        NumeroDuplicado = 0;
                    }
                    else
                    {
                        Soma = NumeroDuplicado * ListaDuplicados.Count;
                        ListaDuplicados = new List<int>();
                        NumeroDuplicado = 0;
                    }
                }
                foreach (var Variavel in ListaVariavel) { NumerosOrdenados += string.Concat(Variavel, "-"); }
                textBox1.Text = string.Concat("Números ordenados: ", NumerosOrdenados);
                textBox2.Text = string.Concat("Soma de números duplicados: ", Soma);

    Leandro de Agostini MCTS - Web Application, Framework 4

    domingo, 27 de maio de 2018 01:27

Todas as Respostas

  • Olá, veja se este código lhe ajuda.
    Abs!
    List<int> ListaControle = new List<int>() { 1, 2, 3, 4, 5, 6 };
                //List<int> ListaVariavel = new List<int>() { 2, 3, 4, 5, 5 };
                List<int> ListaVariavel = new List<int>() { 4, 5, 6, 1, 3 };
                ListaVariavel.Sort(); //Expressao LINQ para ordenacao
                List<int> ListaDuplicados = new List<int>();
                int Soma = 0;
                int NumeroDuplicado = 0;
                string NumerosOrdenados = string.Empty;
                foreach (var Controle in ListaControle)
                {
                    foreach (var Variavel in ListaVariavel)
                    {
                        if (Variavel == Controle)
                        {
                            ListaDuplicados.Add(Variavel);
                            NumeroDuplicado = Variavel;
                        }
                    }
                    if (ListaDuplicados.Count == 0 || ListaDuplicados.Count == 1)
                    {
                        ListaDuplicados = new List<int>();
                        NumeroDuplicado = 0;
                    }
                    else
                    {
                        Soma = NumeroDuplicado * ListaDuplicados.Count;
                        ListaDuplicados = new List<int>();
                        NumeroDuplicado = 0;
                    }
                }
                foreach (var Variavel in ListaVariavel) { NumerosOrdenados += string.Concat(Variavel, "-"); }
                textBox1.Text = string.Concat("Números ordenados: ", NumerosOrdenados);
                textBox2.Text = string.Concat("Soma de números duplicados: ", Soma);

    Leandro de Agostini MCTS - Web Application, Framework 4

    domingo, 27 de maio de 2018 01:27
  • Boa tarde,

    Por falta de retorno esssa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 4 de junho de 2018 20:38
    Moderador