检查对象是否是通用集合

Ada*_*oll 5 c# collections type-equivalence

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

List<Guid> guids = new List<Guid>()
Run Code Online (Sandbox Code Playgroud)

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

IN ( {Guid1}, {Guid2}, {Guid3} )
Run Code Online (Sandbox Code Playgroud)

像这样检查值是IEnumerable:

if (value is IEnumerable)
Run Code Online (Sandbox Code Playgroud)

传入一个字符串时会崩溃(这种情况经常发生:)).验证此类情况的最佳方法是什么?

Viv*_*vek 7

怎么样:

if(value .GetType().IsGenericType && value is IEnumerable)
Run Code Online (Sandbox Code Playgroud)


Nic*_*ick 5

您可以尝试value.GetType().IsGenericType结合您的IEnumerable检查.