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

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


Код: 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
24.09.2009, 17:49
    #36215725
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GroupBy в DataTable
Код: 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
24.09.2009, 18:45
    #36215863
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GroupBy в DataTable
;)

Код: 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
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / GroupBy в DataTable / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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