我有IEnumerable<object>类型变量。

IEnumerable<object> items= new object[] { 1, 2, 3 };

检查它是否是IEnumerable<int>的最佳方法是什么?

我试过了
typeof(IEnumerable<int>).IsAssignableFrom(items.GetType())
typeof(IEnumerable<int>).IsInstanceOfType(items)
items is IEnumerable<int>

但是, Re-Sharper 提示它们全部。

在我的情况下,大多数情况下IEnumerable<object> items的类型为IEnumerable<int>。我想执行IEnumerable<int>类型的操作,而其他类型的操作。

最佳答案

如果要检查IEnumerable<object>是否仅包含整数,则可以使用 Enumerable.All :

var isInts = items.All(x => x is int);

关于c# - 检查IEnumerable <object>是否为IEnumerable <int>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30475033/

10-13 08:02
查看更多