Usuário com melhor resposta
List<int> obter numeros repetidos e saber quando é uma sequencia

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
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 ordenacaoList<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
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 4 de junho de 2018 20:38
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 ordenacaoList<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
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 4 de junho de 2018 20:38
-
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.