DatagridView C # Сумма столбцов - PullRequest
0 голосов
/ 31 мая 2018

Здравствуйте, мне интересно, как я могу получить сумму столбца в соответствии со значением в другом столбце.Например, у меня есть DatagridView, подобный этому

User   Value to sum
-------------------
User1       10
-------------------
User1       15
-------------------
User2       20
-------------------
User3       30

Я хочу знать, как получить сумму для каждого пользователя.

Ожидаемый результат

User1: 25        
User2: 20     
User3: 30

Пока чтоУ меня есть код для получения суммы всех пользователей, но я не знаю, сколько нужно получить для каждого пользователя.

Заранее спасибо всем.

for (int i = 0; i < dataGridView2.Rows.Count-1; i++)
{
    total += Convert.ToInt32(dataGridView2.Rows[i].Cells[ColumnN].Value);
}

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Если вы извлекаете свои данные в виде списка пар, вы можете использовать следующие коды:

        var data = new List <KeyValuePair<string, int>>()
        {
            new KeyValuePair<string, int>( "User1", 10 ),
            new KeyValuePair<string, int>( "User1", 15 ),
            new KeyValuePair<string, int>( "User2", 20 ),
            new KeyValuePair<string, int>( "User3", 30 )
        };

        var res = data.GroupBy(x => x.Key);

        foreach (var item in res)
        {
            var user = item.ToList();
            var sum = item.Sum(x => x.Value);
            Console.WriteLine(user[0].Key + " " + sum);
        }
0 голосов
/ 31 мая 2018

Вы можете использовать этот запрос:

var userSums = dataGridView2.Rows.Cast<DataGridViewRow>()
    .GroupBy(row => row.Cells[0].Value.ToString())
    .Select(g => new { User = g.Key, Sum = g.Sum(row => Convert.ToInt32(row.Cells[1].Value)) });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...