C#-List Sum()溢出异常:算术运算导致溢出



我已经尝试了在其他帖子中找到的一些解决方案,但仍然没有成功。

我有一个列表,我想在特定条件下添加一个值:

long teste = (long)joinHhResWithMemRes.Where(x => x.OcupacaoCode == 1).Sum(x => x.Weight);

但它总是返回这个错误:

System.OverflowException:算术运算导致溢出。在C:\IPCA\GfK\EvoTam\EvoTamStats\Server\EvoStats\src\EvoStats.Application\Services\AudienceDash\WeightGridCalcService.cs:line 350中的System.Linq.Enumerable.Sum(IEnumerable1 source) at EvoStats.Application.Services.AudienceDash.WeightGridCalcService.CalcWeightByTargert(IEnumerable1 1 joinHhResWithMemRes(在C:\IPCA\GfK\EvoTam\EvoTamStats\Server\EvoStats\src\EvoStats.Application\Services\AudienceDash\WeightGridCalcService.GetWeightGridFromXmlAsync(日期时间日期(在EvoStats.neneneba API Controllers.XmlValidationController.GetWeightGrid(日期时间日期(,位于C:\IPCA\GfK\EvoTam\EvoTamStats\Server\EvoStats\src\EvoStats.nenenebb API \Controllers\XmlValidationController。cs:line 20位于Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper映射程序、ObjectMethodExecutor执行程序、Object控制器、Object[]参数(位于Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g_Await|12_0(ControllerActionInvoker调用程序,ValueTask`1 actionResultValueTask(位于Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g_Await|10_0(ControllerActionInvoker调用程序,任务lastTask,状态next,作用域范围,对象状态,布尔值isCompleted(位于Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed上下文(在Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State&Next,Scope&Scope,Object&State,Boolean&isCompleted(位于Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync((---上一位置的堆栈结束跟踪---位于Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g_Await|20_0(ResourceInvoker调用程序,Task lastTask,State next,Scope Scope,Object State,Boolean isCompleted(位于Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g_Await|17_0(资源调用程序调用程序,任务任务,IDisposable作用域(位于Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g_Await|17_0(资源调用程序调用程序,任务任务,IDisposable作用域(位于Microsoft.AspNetCore.Routing.EndpointMiddleware.g_AwaitRequestTask|6_0(端点,任务请求任务,ILogger记录器(位于Microsoft.AspNetCore.Authorization.AuthenticationMiddleware.IInvoke(HttpContext上下文(位于Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.IInvoke(HttpContext上下文(位于Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.IInvoke(HttpContext上下文(

我测试了几种类型的变量,从long、ulong、double、decimal,但都没有成功。我将列表导出到excel并进行手动计算,最终值为:";46219134368〃;,这么久就足够了。

仅供参考,该列表有2322行。

我感谢你的帮助。

您仍在添加任何类型的x.Weight。将演员阵容移动到Sum:内部

long teste = joinHhResWithMemRes.Where(x => x.OcupacaoCode == 1).Sum(x => (long)x.Weight);

最新更新