[英]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.