gpt4 book ai didi

c# - LINQ 列表 : Specified cast is not valid

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:43 25 4
gpt4 key购买 nike

我正在尝试计算符合我的条件的列的总和。列表(lstSumQty)中“数量”列的记录采用字符串格式(注意:由于此数据来自最终用户上传的 excel 文件。因此,数量列有时为字符串或十进制) .

由于column string DataType,系统抛出异常:Specified cast is not valid,How to cast it or resolve?

列表中的数据

 Unit  Quantity
"t" "10"
"t" "05"
"kg" "14"
"t" "02"

结果应该是: tUnitTotal = 17

看下面这段代码

 tUnitTotal = lstSumQty
.AsEnumerable()
.Where(row => row.Field<string>("Unit") == "t")
.Sum(row => row.Field<decimal>("Quantity"))
.ToString();

除了 List,我还可以使用 LINQ 使用 DataSet 或 DataTable。

如有任何帮助,我们将不胜感激:)。

最佳答案

通用类型参数(在您的情况下为 <decimal>)并不表示您希望返回什么,而是表示它在数据库中的。 p>

所以你需要在计算它们的总和之前将你的字符串转换为数字:

tUnitTotal = lstSumQty.AsEnumerable()
.Where(row => row.Field<string>("Unit") == "t")
.Sum(row => Convert.ToDecimal(row.Field<string>("Quantity")))
.ToString();

关于c# - LINQ 列表 : Specified cast is not valid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56472765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com