如何判断Type是列表还是数组还是IEnumerable或

Nei*_*ell 33 c# reflection

给定一个Type对象,最简单的方法是测试它是否实际上是一个对象列表?即阵列或IEnumerable/IEnumerable <>.

SLa*_*aks 52

检查typeof(IEnumerable).IsAssignableFrom(type).

每种集合类型,包括数组和IEnumerable<T>实现IEnumerable.

  • 谢谢 - 我不得不排除`string`,因为它出现了一个`Char`数组,我不想要那个.:) (17认同)
  • 注意:`IEnumerable` 在`System.Collections.Generic;` 命名空间中被识别,但为了能够使用这段代码,它还需要添加`using System.Collections;` 否则我们会得到编译错误`using the generic类型 IEnumerable&lt;T&gt; 需要 1 个类型参数`并且 Visual Studio 甚至不建议使用此命名空间 (2认同)