c# - 检查 IEnumerable<object> 是否为 IEnumerable<int>

标签 c# linq

我已经 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/

相关文章:

c# - IClass 不包含 method_name 的定义,也没有扩展方法 method_name

c# - 使用 LINQ 从字符串中删除字符

Linq2SQL "Local sequence cannot be used in LINQ to SQL"错误

c# - 如何通过linq获取嵌套对象的值计数

c# - 这是过度使用扩展方法吗?

c# - 从 Excel 中检索 "row pairs"

c# - 使用 CodeDom 从外部类调用方法

c# - 使用反射和枚举来进行 MVC 应用程序访问的逻辑控制是否安全?

c# - WebView ContentChanged 事件

c# - 将大量数据转换为 C# 对象