检查对象是否是通用集合

时间:2010-03-05 16:04:32

标签: c# collections type-equivalence

我们正在动态构建一些SQL语句,我们正在使用IN运算符。如果我们的值是一组值,那么:

List<Guid> guids = new List<Guid>()

我希望能够为我的子句构建器提供'guids',让它验证类型,如果它是可枚举的,则创建一个如下的子句:

IN ( {Guid1}, {Guid2}, {Guid3} )

检查该值是否为IEnumerable:

if (value is IEnumerable)
当传入一个字符串时,

会崩溃(这种情况经常发生:))。验证此类情况的最佳方法是什么?

3 个答案:

答案 0 :(得分:7)

怎么样:

if(value .GetType().IsGenericType && value is IEnumerable)

答案 1 :(得分:5)

您可以尝试将value.GetType().IsGenericType与您的IEnumerable检查结合使用。

答案 2 :(得分:2)

怎么样:

value is IEnumerable<Guid>

如果您期待Guid实例,那就更好了,不是吗?