Мы динамично создаем некоторые SQL-операторы, и мы используем оператор IN. Если наше значение является набором значений, таким образом что:
List<Guid> guids = new List<Guid>()
Я хочу смочь поставщику 'гуиды' своему разработчику пункта, иметь его, проверяют тип и если это является счетным, создают пункт как:
IN ( {Guid1}, {Guid2}, {Guid3} )
Проверка, что значение является IEnumerable как это:
if (value is IEnumerable)
падает, когда строка передается в (который происходит довольно регулярно :)). Что лучший способ состоит в том, чтобы проверить этот тип условия?
Как насчет:
if(value .GetType().IsGenericType && value is IEnumerable)
А как насчет:
value is IEnumerable<Guid>
Лучше, если вы ожидаете экземпляры Guid, не так ли?
Можно попробовать value.GetType().IsGenericType
в сочетании с проверкой на IEnumerable.