繁体   English   中英

如何获取Enumerable.Except()返回的动态对象的多个元素?

[英]How to get a number of elements of a dynamic object returned by Enumerable.Except()?

我如何获取Enumerable.Except()返回的动态对象的元素数?

看:

dynamic itensToRemove = Enumerable.Except(currentCollection, newCollection);
dynamic itensToAdd = Enumerable.Except(newCollection, currentCollection);

当我尝试这样做时:

for (int i = 0; i < itensToRemove.Count(); i++)

我收到运行时错误“对象不包含Count的定义”,因此,我如何获取元素数?

dynamic无法解析扩展方法,这就是为什么您显式调用Enumerable.Except Count做同样的事情:

// You don't want to do this on every iteration!
int count = Enumerables.Count(itemsToRemove);
for (int i = 0; i < count; i++)

目前尚不清楚为什么要在for循环中使用它-在foreach循环中使用它会更正常。 您可能还需要考虑使用ToList来确保对查询进行一次评估:

dynamic itemsToRemoveList = Enumerable.ToList(itemsToRemove);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM