Search code examples
c#linqdatatablelinq-to-dataset

How to do sum of a column with LINQ?


  var GrandTotal = dt.AsEnumerable().Sum(cols => Convert.ToDecimal(cols.Field<string>("TotalPrice"))); 

is Giving Error:

Unable to cast object of type 'System.Decimal' to type 'System.String'

How can I Correct it?


Solution

  • Your TotalPrice column contains decimal values, but you are trying to cast row field value to string. Cast to decimal directly instead:

    var GrandTotal = dt.AsEnumerable()
                       .Sum(r => r.Field<decimal>("TotalPrice"));