首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何仅在列C#中添加数字

如何仅在列C#中添加数字
EN

Stack Overflow用户
提问于 2019-02-25 09:41:22
回答 4查看 925关注 0票数 0

我想得到DataTable列在C#中的总和。但是,我的列包含字符串和数值。是否有一种方法只对列中的数值进行汇总?

DataTable

代码语言:javascript
代码运行次数:0
运行
复制
Column

hello
304
-312
213
bye

我试过使用下面的代码,但当单元格没有数值时,它将无法工作。

代码语言:javascript
代码运行次数:0
运行
复制
var total = dt.Compute("Sum(column)","");
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-02-25 09:50:32

代码语言:javascript
代码运行次数:0
运行
复制
decimal sum;
for (i=0;i<rows;i++)
{
  sum += decimal.TryParse(dt["Column"][i].ToString(), out var value) ? value : (decimal)0L;
}
票数 2
EN

Stack Overflow用户

发布于 2019-02-25 09:51:03

我不认为您可以在Compute中使用强制转换,所以解决方案可以是这样的(VB.net代码):

代码语言:javascript
代码运行次数:0
运行
复制
Dim dt As New DataTable
dt.Columns.Add("test")

dt.Rows.Add("hello")
dt.Rows.Add("304")
dt.Rows.Add("-312")
dt.Rows.Add("213")
dt.Rows.Add("bye")

Dim intTotal As Integer = 0

For Each dr As DataRow In dt.Rows

    Dim intValue As Integer = 0

    If Integer.TryParse(dr("test"), intValue) Then
        intTotal += intValue
    End If

Next dr

MsgBox(intTotal)
票数 3
EN

Stack Overflow用户

发布于 2019-02-25 10:18:27

C#实例

代码语言:javascript
代码运行次数:0
运行
复制
Datatable dt = new DataTable()
dt.Columns.Add("test")
dt.Rows.Add("test2")
dt.Rows.Add("45")
dt.Rows.Add("12")
dt.Rows.Add("-213")
dt.Rows.Add("test3")

int total = 0

Foreach(DataRow dr in dt.Rows) {
    If (Integer.TryParse(dr("test")){
        total += dr("test").value)
    }
}

return total;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54863258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档