Usuário com melhor resposta
Selecionar os tre maior valores num datagridview, como fazer isto?

Pergunta
-
Bom dia ,Bom eu estou desenvolvendo uma sistema para TCC, ae acontece o seguinte estou implementando um relatorio de curva ABC, que faz um balanço e me traz os produtos que vendem mais e me da em porcentagem, exemplo: vendi 150 pacotes de arroz, cada um a dez reais, 10*150 = 1500 , o lucro total da minha loja e de 10,000.00 assim 1,500.00 / 10,000.00 = 0,15,
0,15 * 100 = 15 %, ou seja o arroz e respansavel por 15% do meu lucro, O PROBLEMA e que eu quero pegar os tres mais vendidos, vamos supor que eu tenha um datagrid preenchido com 15 itens cada um com uma porcentagem diferente ae eu quero ler esse datagrid e pegar as TRES maiores porcentagens.
Eu tentei comparar usando um while porem não tive sucesso sem falar nos outros metodos de POG utilizados, se poderem me ajudar eu ficarei agradecido...
DANIEL FERREIRA, 4º periodo de ANALISE E DESENVOLVIMENTO DE SISTEMAS (UEPA-XV redenção-PA (2015) a (2018)).
- Editado Daniel_Reis_ sábado, 17 de dezembro de 2016 13:40
Respostas
-
Olá Daniel-Ferreira - TADS-analise de sistema
Conseguiu resolver este problema?
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
- Marcado como Resposta Daniel_Reis_ quarta-feira, 1 de fevereiro de 2017 16:48
-
Daniel, boa tarde!
Você pode utilizar LINQ, para filtrar isso.
Segue abaixo exemplo:
DataTable table = (DataTable)seuGrid.DataSource; var tresMaiores = table.AsEnumerable() .OrderByDescending(o => o["campoPercentual"]) .Take(3) .CopyToDataTable(); //OrderByDescending: Ordena pelo campo que você escolheu, na ordem decrescente. //Take(3) : Retorna o 3 primeiros valores da sequência. //CopyToDataTable(): Retorna uma DataTable. //Obs.: Caso dê erro, defina o "using System.Linq;" no começo do seu form.
Qualquer dúvida, estou a disposição!
att.
Felipe
- Marcado como Resposta Daniel_Reis_ quarta-feira, 1 de fevereiro de 2017 16:48
Todas as Respostas
-
Olá Daniel-Ferreira - TADS-analise de sistema
Conseguiu resolver este problema?
Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.
Daniel Ribeiro Arrais
Consultor Sênior
Site: www.danielarrais.com.br
Linkedin: http://www.linkedin.com/in/danielarrais
E-mail: arraishapkido@gmail.com
Skype: dani.arrais
- Marcado como Resposta Daniel_Reis_ quarta-feira, 1 de fevereiro de 2017 16:48
-
Daniel, boa tarde!
Você pode utilizar LINQ, para filtrar isso.
Segue abaixo exemplo:
DataTable table = (DataTable)seuGrid.DataSource; var tresMaiores = table.AsEnumerable() .OrderByDescending(o => o["campoPercentual"]) .Take(3) .CopyToDataTable(); //OrderByDescending: Ordena pelo campo que você escolheu, na ordem decrescente. //Take(3) : Retorna o 3 primeiros valores da sequência. //CopyToDataTable(): Retorna uma DataTable. //Obs.: Caso dê erro, defina o "using System.Linq;" no começo do seu form.
Qualquer dúvida, estou a disposição!
att.
Felipe
- Marcado como Resposta Daniel_Reis_ quarta-feira, 1 de fevereiro de 2017 16:48
-