Dav*_*eer 5 dynamic c#-4.0 massive
我正在使用Rob Conery的Massive ORM.
是否有一种优雅的方式来计算返回的记录集?
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++;
}
Run Code Online (Sandbox Code Playgroud)
Jef*_*ado 13
而不是使用扩展方法成员语法调用它,尝试直接调用静态方法.
int count = Enumerable.Count(queryFromMassiveDynamic);
Run Code Online (Sandbox Code Playgroud)
你可以采纳sehe的答案,就是投射结果。
var z = (queryFromMassiveDynamic as IEnumerable<dynamic>).Count();
Run Code Online (Sandbox Code Playgroud)
相反,请了解您从 Query 成员函数中获得的内容。事实上,您正在获得一个动态类型的 IEnumerable,而 var 对此有麻烦。
改变这一行
var queryFromMassiveDynamic = viewModelExpando.TenTricksNewestFirst;
Run Code Online (Sandbox Code Playgroud)
对此
IEnumerable<dynamic> queryFromMassiveDynamic = viewModelExpando.TenTricksNewestFirst;
Run Code Online (Sandbox Code Playgroud)
无需进行任何转换即可显示计数。