Лучший способ протестировать, если Тип является набором

От не будет экспортироваться http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/

SELECT order_id,product_name,qty
FROM orders
WHERE foo = 'bar'
INTO OUTFILE '/var/lib/mysql-files/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Используя эту команду названия столбцов.

Также примечание, которое /var/lib/mysql-files/orders.csv будет на сервер , который выполняет MySQL. У пользователя, под которым работает процесс MySQL, должны быть полномочия записать в каталог, выбранный, или команда перестанет работать.

, Если Вы хотите записать вывод в свою локальную машину от удаленного сервера (особенно размещенный или виртуализировать машину, такую как Heroku или Amazon RDS), это решение не подходит.

6
задан Max Toro 24 July 2009 в 23:27
поделиться

2 ответа

Я думаю, вы немного усложняете это. Если вы действительно хотите использовать IEnumerable, но исключить System.String, почему бы просто не сделать это прямо в коде?

public static bool IsCollection(object obj) {
  return obj is IEnumerable && !(obj is String);
}
7
ответ дан 9 December 2019 в 20:47
поделиться

Если вы действительно хотите только протестировать:

bool isCollection = obj.GetType().GetInterfaces()
    .Any(iface => iface.GetGenericTypeDefinition() == typeof(ICollection<>))

Но, честно говоря, если вы действительно хотите использовать только частную строку (почему, кстати?), Тогда просто сделай так. Если вы протестируете ICollection <> , вы будете рассматривать результат запроса LINQ как «не коллекция», например, без уважительной причины.

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

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