Возможно, название вопроса неверно. У меня есть следующие переменные
IEnumerable x = // some IEnumerable
System.Type y = // some type
Как можно перебрать x, чтобы сгенерировать массив с элементами типа y?
Заглянув в Интернет, я обнаружил:
public T[] PerformQuery(IEnumerable q)
{
T[] array = q.Cast().ToArray();
return array;
}
Примечание. Я не могу вызвать этот метод PerformQuery, потому что y имеет тип System.Type, другими словами, назвав его PerformQuery(x); или PerformQuery(x); выдаст ошибку компиляции.
edit
Вот причина, по которой у меня возникла эта проблема. У меня есть веб-сервис, где я публикую две вещи. Тип таблицы, которую я хочу запросить (пример typeof(Customer)), и фактический пример строкового запроса «Выбрать * из клиентов»
protected void Page_Load(object sender, EventArgs e)
{
// code to deserialize posted data
Type table = // implement that here
String query = // the query that was posted
// note DB is of type DbContext
IEnumerable q = Db.Database.SqlQuery(table, query );
// here I will like to cast q to an array of items of type table!
Подробнее здесь: https://stackoverflow.com/questions/219 ... array-of-t