5

列内の各セルの合計を取得する方法の例はたくさんあります。行内の各セルを合計し、その合計を「合計」と呼ばれる新しい列に追加する方法の例を見つけることができませんでした。

C# DataTable には、DataTable1.Compute("SUM(["Column Name"])", "")

以下のやりたいことの例。ただし、特定の列には数値が含まれていない可能性があるため、特定の列を除外できるようにしたいと考えています。

ここに画像の説明を入力

編集テーブルは動的であり、列の数は変更される場合があります。

4

6 に答える 6

7

このループを使用できます:

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);
}

これは、どの列タイプでも機能するはずです。

于 2013-09-27T14:42:50.750 に答える
3

DataTable には、計算列を作成する機能があります。あなたの場合、「合計」列を次のように作成できます

DataTable1.Columns.Add("Total", typeof(Double));
DataTable1.Columns["Total"].Expression = "C1+C2+C3";
于 2013-09-27T14:42:00.577 に答える
0

これを試して。

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);
}
于 2013-09-27T14:57:45.357 に答える