Count on IEnumerable <dynamic>

I am using Rob Conery Massive ORM.

Is there an elegant way to count the returned recordset?

dynamic viewModelExpando = result.ViewData.Model;
var queryFromMassiveDynamic = viewModelExpando.TenTricksNewestFirst;

//fails as have actually got TryInvokeMember on it
var z = queryFromMassiveDynamic.Count();

//works
int i = 0;
foreach (var item in queryFromMassiveDynamic) {
    i++;
}
+5
source share
3 answers

Instead of calling it using member syntax of an extension method, try calling the static method directly.

int count = Enumerable.Count(queryFromMassiveDynamic);
+13
source

The question is a bit off. You do not count IEnumerable<dynamic>. You are trying to calculate a value dynamic(which, hopefully, contains IEnumerable).

An easy way to do this is with cast:

 var z = (queryFromMassiveDynamic as IEnumerable<dynamic>).Count();
+4
source

, .

var z = (queryFromMassiveDynamic as IEnumerable<dynamic>).Count();

, - . IEnumerable dynamic var .

var queryFromMassiveDynamic = viewModelExpando.TenTricksNewestFirst;

IEnumerable<dynamic> queryFromMassiveDynamic = viewModelExpando.TenTricksNewestFirst;

The graph will be displayed without the need for casting.

+4
source

All Articles