C # Преобразовать данные таблицы значений - PullRequest
0 голосов
/ 15 июня 2019

Я прочитал CSV-файл в DataTable, в какой-то момент я захотел преобразовать некоторые столбцы из строки в двойные, чтобы выполнить некоторые операции groupBy и т. Д.

Ниже приведен пример, иллюстрирующий проблему.Можно ли сгенерировать новую таблицу (dt) из предыдущей (таблицы), изменив данные столбцов для выполнения некоторых дополнительных операций.

PS: я знаю, что это должно быть сделано с самого начала с использованиемправильный тип данных.

    private void BtnApply_Click(object sender, EventArgs e)
    {
        DataTable table = new DataTable();
        table.Columns.Add("RevenueI", typeof(string));
        table.Columns.Add("RevenueII", typeof(string));
        table.Columns.Add("Name", typeof(string));
        table.Columns.Add("Bonus", typeof(string));

        // Here we add five DataRows.
        table.Rows.Add("180.50", "45000.45", "David", "4700");
        table.Rows.Add("50.24", "22000.32", "Susane", "3500");
        table.Rows.Add("10.78", "41000.12", "Adam", "2800");
        table.Rows.Add("21.32", "33500.00", "Janet", "5400");
        table.Rows.Add("100.89", "52000.32", "Melanie", "2300");
        table.Rows.Add("25.23", "48978.00", "David", "3600");

        var dt = table.AsEnumerable()
          .GroupBy(r => r.Field<string>("Name"))
          .Select(g =>
          {
              var row = table.NewRow();

              row["Name"] = g.Key;
              row["RevenueI"] = g.Sum(r => r.Field<double>("RevenueI"));
              row["RevenueI"] = g.Sum(r => r.Field<double>("RevenueII"));
              row["Bonus"] = g.Sum(r => r.Field<double>("Bonus"));

              return row;
          }).CopyToDataTable();

        dtGrid.DataSource = dt;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...