Rich Andrews
Rich Andrews

Reputation: 4188

DataRow[] Aggregate Functions C#

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

Answers (2)

Hien Nguyen
Hien Nguyen

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

Marc Gravell
Marc Gravell

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

Related Questions