列内の各セルの合計を取得する方法の例はたくさんあります。行内の各セルを合計し、その合計を「合計」と呼ばれる新しい列に追加する方法の例を見つけることができませんでした。
C# DataTable には、DataTable1.Compute("SUM(["Column Name"])", "")
以下のやりたいことの例。ただし、特定の列には数値が含まれていない可能性があるため、特定の列を除外できるようにしたいと考えています。
編集テーブルは動的であり、列の数は変更される場合があります。
このループを使用できます:
table.Columns.Add("Total", typeof(decimal));
foreach (DataRow row in table.Rows)
{
decimal rowSum = 0;
foreach (DataColumn col in table.Columns)
{
if(!row.IsNull(col))
{
string stringValue = row[col].ToString();
decimal d;
if(decimal.TryParse(stringValue, out d))
rowSum += d;
}
}
row.SetField("Total", rowSum);
}
これは、どの列タイプでも機能するはずです。
DataTable には、計算列を作成する機能があります。あなたの場合、「合計」列を次のように作成できます
DataTable1.Columns.Add("Total", typeof(Double));
DataTable1.Columns["Total"].Expression = "C1+C2+C3";
これを試して。
DataTable1.Columns.Add("Total", typeof(Double));
foreach (DataRow row in DataTable1.Rows)
{
int sum = row.Columns.Cast<DataColumn>().Sum(dc=>(int)row[dc]);
row.SetField("Total", sum);
}