Как я проверяю, является ли данное значение универсальным списком?

Используйте DESC mytablenamegoeshere или SHOW COLUMNS FROM mytablenamegoeshere

Для более подробной информации используйте SHOW FULL COLUMNS ...

Эти запросы предоставят вам метаданные таблицы.

74
задан 27 April 2009 в 16:07
поделиться

6 ответов

if(value is IList && value.GetType().IsGenericType) {

}
76
ответ дан 24 November 2019 в 11:49
поделиться

Для вас, парни, которым нравится использовать методы расширения:

public static bool IsGenericList(this object o)
{
    var oType = o.GetType();
    return (oType.IsGenericType && (oType.GetGenericTypeDefinition() == typeof(List<>)));
}

Итак, мы могли бы сделать:

if(o.IsGenericList())
{
 //...
}
105
ответ дан 24 November 2019 в 11:49
поделиться
 bool isList = o.GetType().IsGenericType 
                && o.GetType().GetGenericTypeDefinition() == typeof(IList<>));
14
ответ дан 24 November 2019 в 11:49
поделиться
public bool IsList(object value) {
    return value is IList 
        || IsGenericList(value);
}

public bool IsGenericList(object value) {
    var type = value.GetType();
    return type.IsGenericType
        && typeof(List<>) == type.GetGenericTypeDefinition();
}
6
ответ дан 24 November 2019 в 11:49
поделиться
if(value is IList && value.GetType().GetGenericArguments().Length > 0)
{

}
5
ответ дан 24 November 2019 в 11:49
поделиться

Вероятно, лучшим способом было бы сделать что-то вроде этого:

IList list = value as IList;

if (list != null)
{
    // use list in here
}

Это даст вам максимальную гибкость, а также позволит вам работать со многими различными типами, которые реализуют IList интерфейс.

0
ответ дан 24 November 2019 в 11:49
поделиться
Другие вопросы по тегам:

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