Я прочитал 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;