在计算datagradview中的列总和时避免使用该静态数字

时间:2016-04-20 12:37:57

标签: c# datagridview

我使用下面的代码来计算datagridview中列的总和 我担心静态数字" 3"哪个代表汇总列的索引,无论如何都要避免那个静态数,所以它总是计算相同列的总和?

    private double TOTAL_INV()
    {
        double Total = 0;

        for (int i = 0; i < DGV_INVOICE.Rows.Count; ++i)
        {
            double num = 0;
            double.TryParse(DGV_INVOICE.Rows[i].Cells[3].Value.ToString(),out num);
            Total+=num;
        }
        return Total;
    }

1 个答案:

答案 0 :(得分:2)

列号需要来自某个地方,无论是硬编码还是以其他方式配置。但是,你可以做的是让它更加明显。

例如,您可以创建一个总计任何列的方法,如下所示:

private double TotalColumn(int col) {
    double Total = 0;
    for (int i = 0; i < DGV_INVOICE.Rows.Count; ++i) {
        double num = 0;
        if (double.TryParse(DGV_INVOICE.Rows[i].Cells[col].Value.ToString(), out num)) {
            Total+=num;
        }
    }
    return Total;
}

现在调用者决定要传递给您的方法的列号。给它命名是一个好主意,而不是使用3作为匿名常量:

const int invoiceColumn = 3;
...
var total = TotalColumn(invoiceColumn);