Reputation: 4188
I have an array of DataRow objects in my C# project which I would like to Sum various fields from.
Instead of running through each row and totalling my own sums I noticed the DataRow[].Sum<> function but I am struggling to find any resources on the net on how to use it.
Any pointers in the right direction would be very helpful
:) Removed code example as it was wrong! All now works fine - the link helped cheers Marc.
Upvotes: 5
Views: 14044
Reputation: 18975
This is my way to use sum number fields in DataRow of Datatable.
I share for whom concern.
DataTable retrieveData = GetData();
decimal value = 0;
var total = retrieveData.Rows[i].ItemArray.Sum(row =>
decimal.TryParse(row.ToString(), out value) ? decimal.Parse(row.ToString()) : 0);
Upvotes: 0
Reputation: 1062830
That is the LINQ Sum
; and can be used:
var sum = rows.Sum(row => row.Field<int>("SomeColumn")); // use correct data type
(you can also pass in the column index or the DataColumn
in place of the string)
for untyped datarows, or:
var sum = rows.Sum(row => row.SomeColumn);
for typed datarows.
MSDN has full documentation on this; for example, here is the overload I am using in the examples above.
Upvotes: 14