簡體   English   中英

如何在 c# 中獲取數據表的多個列的總和

[英]How to get the sum of multiple columns of a datatable in c#

我想為數據表中的每個數據行獲取三列的總和。 我有一個大約 15 列的 DT,我只想要第 7 列、第 9 列和第 10 列的總和。所有列都是字符串類型。 我嘗試了幾種使用 LINQ 的方法,但都失敗了。

如果所有列都是字符串但實際上表示浮點數:

double totalSum = dt.AsEnumerable()
    .Sum(r=> double.Parse(r[7].ToString()) + double.Parse(r[9].ToString()) + double.Parse(r[10].ToString()));

如果有些是空的或有無效的數字,你需要使用double.TryParse

這是解決方案,即使列類型是字符串,它也對我有用:

for (int i = 11; i < dt.Rows.Count; i++)
{
    for (int j = 14; j <= 18; j += 2)
    {
        if (j > 17)
            j -= 1;
        if(!string.IsNullOrEmpty(dt.Rows[i][2].ToString()))
        { 
            newdt.Rows.Add(dt.Rows[i][18], dt.Rows[i][19], 
            dt.Rows[i][j]);
        } 
    }
}
    
try
{
    var result = 0;
    if (newdt.Rows.Count != 0)
    {                          
        result = newdt.AsEnumerable().Sum(x => Convert.ToInt32(x["Column7"]));
        subdt.Rows.Add(dt.Rows[i][18], dt.Rows[i][19], result) 
    }
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM