Проверьте, является ли объект универсальным набором

Мы динамично создаем некоторые SQL-операторы, и мы используем оператор IN. Если наше значение является набором значений, таким образом что:

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

Я хочу смочь поставщику 'гуиды' своему разработчику пункта, иметь его, проверяют тип и если это является счетным, создают пункт как:

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

Проверка, что значение является IEnumerable как это:

if (value is IEnumerable)

падает, когда строка передается в (который происходит довольно регулярно :)). Что лучший способ состоит в том, чтобы проверить этот тип условия?

5
задан Adam Driscoll 5 March 2010 в 16:04
поделиться

3 ответа

Как насчет:

if(value .GetType().IsGenericType && value is IEnumerable)
7
ответ дан 18 December 2019 в 13:13
поделиться

А как насчет:

value is IEnumerable<Guid>

Лучше, если вы ожидаете экземпляры Guid, не так ли?

2
ответ дан 18 December 2019 в 13:13
поделиться

Можно попробовать value.GetType().IsGenericType в сочетании с проверкой на IEnumerable.

5
ответ дан 18 December 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: