powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / GroupBy в DataTable
6 сообщений из 6, страница 1 из 1
GroupBy в DataTable
    #36215497
Фотография lans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите пожалуйста сделать GroupBy в DataTable + сделать AVG по колонке...
...
Рейтинг: 0 / 0
GroupBy в DataTable
    #36215550
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lans,

ни черта не ясно, среднее по группе?
...
Рейтинг: 0 / 0
GroupBy в DataTable
    #36215604
Фотография lans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Среднее по группе
...
Рейтинг: 0 / 0
GroupBy в DataTable
    #36215617
Фотография lans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например


Код: plaintext
1.
2.
3.
4.
 honey       0             0       
 milk        2             1              
 milk        4             1              
 butter      17            0          
сгрупировать так
Код: plaintext
1.
2.
3.
 honey       0             0       
 milk        3             1              
 butter      17            0          
...
Рейтинг: 0 / 0
GroupBy в DataTable
    #36215725
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TestLinq
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {            
            DataTable dt = new DataTable();
            dt.Columns.Add("product");
            dt.Columns.Add("val1",typeof(int));
            dt.Columns.Add("val2",typeof(int));
            dt.Rows.Add("honey", 1, 1);
            dt.Rows.Add("honey", 5, 7);
            dt.Rows.Add("milk", 10, 45);
            dt.Rows.Add("butter", 15, 7);
            dt.Rows.Add("milk", 21, 13);
            dt.Rows.Add("butter", 5, 17);
            var var1 = dt.AsEnumerable()
                .GroupBy(p => p.Field<String>("product"))
                .Select(g=> 
                    new {product = g.Key, 
                        val1 = g.Average(p=>p.Field<int>("val1")), 
                        val2 = g.Average(p=>p.Field<int>("val2"))
                    }).ToList();
                        
                dataGridView1.DataSource = var1; 
           
        }

    }    
    
}
...
Рейтинг: 0 / 0
GroupBy в DataTable
    #36215863
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
;)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
DataTable dtMaster = new DataTable();
            dtMaster.Columns.Add("id", typeof(int));
            dtMaster.Columns.Add("product");
            dtMaster.Rows.Add(1, "honey");
            dtMaster.Rows.Add(2, "milk");
            dtMaster.Rows.Add(3, "butter");
            
            DataTable dtDetail = new DataTable();
            dtDetail.Columns.Add("id", typeof(int));
            dtDetail.Columns.Add("val1",typeof(int));
            dtDetail.Columns.Add("val2",typeof(int));
            dtDetail.Rows.Add(1, 1, 1);
            dtDetail.Rows.Add(1, 5, 7);
            dtDetail.Rows.Add(2, 10, 45);
            dtDetail.Rows.Add(3, 15, 7);
            dtDetail.Rows.Add(2, 21, 13);
            dtDetail.Rows.Add(3, 5, 17);
            
            var var2 = dtMaster.AsEnumerable()
                .GroupJoin(dtDetail.AsEnumerable(), k => k.Field<int>("id"), k2 => k2.Field<int>("id"),
                (k, k2) => new
                {
                    product = k.Field<String>("product"),
                    avgVal1 = k2.Average(r => r.Field<int>("val1")),
                    avgVal2 = k2.Average(r => r.Field<int>("val2"))
                })
                .ToList();
                        
                dataGridView1.DataSource = var2;
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / GroupBy в DataTable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]