IEnumerable для массива T[]C#

Место общения программистов C#
Ответить
Anonymous
 IEnumerable для массива T[]

Сообщение Anonymous »

Возможно, название вопроса неверно. У меня есть следующие переменные

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»