none
Como usar GROUP BY em um DATATABLE RRS feed

  • Pergunta

  • Boa tarde.

    Não queria fazer um FOR para comparar valores.

    Estou precisando dar um group by dentro de um DT para agrupar o campo Aparelho.

    Preciso listar assim:

    Aparelho x = 20 unidades 

    Aparelho y= 10 unidades

    São informações de uma API.

    Help :D


    quinta-feira, 10 de dezembro de 2015 18:40

Respostas

  • Olá Jeff Valentim,

    Por gentileza, verifique as seguintes informações:

    Link 01

    Link 02

    Link 03

    Link 04

    Espero ter ajudado.

    Atenciosamente


    Marcos Roberto de Souza Junior

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

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e 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.

    • Marcado como Resposta Jeff Valentim sexta-feira, 11 de dezembro de 2015 12:56
    sexta-feira, 11 de dezembro de 2015 11:22

Todas as Respostas

  • Olá Jeff Valentim,

    Por gentileza, verifique as seguintes informações:

    Link 01

    Link 02

    Link 03

    Link 04

    Espero ter ajudado.

    Atenciosamente


    Marcos Roberto de Souza Junior

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

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e 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.

    • Marcado como Resposta Jeff Valentim sexta-feira, 11 de dezembro de 2015 12:56
    sexta-feira, 11 de dezembro de 2015 11:22
  • private DataTable _dt;
    private void Form1_Load(object sender, EventArgs e)
    {
    	_dt = new DataTable();
    	_dt.Columns.Add("Id", typeof(int));
    	_dt.Columns.Add("Description", typeof(string));
    	_dt.Columns.Add("Unidades", typeof(int));
    
    	DataRow row1 = _dt.NewRow();
    	row1["Id"] = 1;
    	row1["Description"] = "Açucar";
    	row1["Unidades"] = 10;
    
    	DataRow row2 = _dt.NewRow();
    	row2["Id"] = 2;
    	row2["Description"] = "Arroz";
    	row2["Unidades"] = 10;
    
    	DataRow row3 = _dt.NewRow();
    	row3["Id"] = 2;
    	row3["Description"] = "Arroz";
    	row3["Unidades"] = 101;
    
    	DataRow row4 = _dt.NewRow();
    	row4["Id"] = 1;
    	row4["Description"] = "Açucar";
    	row4["Unidades"] = 11;
    
    	_dt.Rows.Add(row1);
    	_dt.Rows.Add(row2);
    	_dt.Rows.Add(row3);
    	_dt.Rows.Add(row4);
    
    
    	dataGridView1.DataSource = _dt;
    	dataGridView1.Update();
    }
    
    private void button1_Click(object sender, EventArgs e)
    {
    	var  d = _dt.AsEnumerable()
    		.GroupBy(x => new { Id = x.Field<int>("Id"), Description = x.Field<string>("Description") })
    		.Select(x => new
    		{
    			x.Key.Id,
    			x.Key.Description,
    			Soma = x.Sum(s => s.Field<int>("Unidades"))
    		}).ToList();
    
    	dataGridView1.DataSource = d;
    	dataGridView1.Update();
    }

    Fulvio C

    sexta-feira, 11 de dezembro de 2015 17:59