如何从 IList<> 获取项目计数得到作为一个对象?
在一个方法中,我得到一个对象
。
在某些情况下,这个对象
可以是“某物”的IList
(我无法控制这个“某物”)。
我正在尝试:
- 识别该对象是一个
IList
(某物) - 将
object
转换为“IList
”能够从中获取Count
。
目前,我陷入困境并寻找想法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用
is
检查您的对象
是否实现了IList
。然后,您可以将
object
转换为IList
来获取计数。You can check if your
object
implementsIList
usingis
.Then you can cast your
object
toIList
to get the count.这会打印 3,因为 int[] 是一个 IList。
This prints 3, because int[] is a IList.
由于您想要的只是计数,因此您可以利用以下事实:任何实现
IList
的东西也实现IEnumerable
;此外,System.Linq.Enumerable
中有一个扩展方法,它返回任何(通用)序列的计数:对
Cast
的调用是因为开箱即用 非泛型IEnumerable
上没有Count
。Since all you want is the count, you can use the fact that anything that implements
IList<T>
also implementsIEnumerable
; and furthermore there is an extension method inSystem.Linq.Enumerable
that returns the count of any (generic) sequence:The call to
Cast
is because out of the box there isn't aCount
on non-genericIEnumerable
.