2011-02-08 1 views
0

Я использую образец кода библиотеки Dynamic LINQ для динамического возвращения некоторых данных. Количество столбцов, которые я возвращаю, является переменной в зависимости от ввода пользователем. Я перечисляю IQueryable в IList.Как пройти через поле IList за раз?

Что мне нужно сделать, это шаг за шагом по полю Ilist за раз. Я могу получить по одной строке за раз, повторяя строки IList, но я не могу на всю жизнь вытащить одно поле из коллекции.

Например, здесь я возвращаю две колонки (жестко закодированы для тестирования, но в прод будет изменяться в зависимости от того, что поля пользователь выбирает):

Dim Dynq = dc.dt _ 
        .Where("RUN_ID = """ & runNumber & """ and Upper_Pressure > 95") _ 
        .OrderBy("Upper_Pressure") _ 
        .Select(" new (Run_ID,Process)") 

     Dim something = DirectCast(Activator.CreateInstance(GetType(List(Of)).MakeGenericType(Dynq.ElementType), Dynq), IList) 

Теперь я могу вытащить поле из IList, если я знаю, что имя столбца с чем-то вроде:

something.Run_ID.ToString 

, но я не буду знать, столбцы я не буду использовать только во время выполнения и динамически вставить его в переменной, которая установлена ​​во время выполнения не работает.

Так в резюме у меня есть IList, который выглядит как этот

1 | Auto 
2 | Auto 
3 | Manual 
4 | Manual 

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

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

ответ

0

Ваш вопрос немного запутанный, но я думаю, что вы хотите, чтобы сгладить ваше возвращение установить, чтобы вернуть определенные столбцы в качестве элементов в порядке по столбцам, то грести ...

Один из способов, вы можете использовать это SelectMany оператор ,

Например (извините в C#, как мой мозг превращается один-гусеничный!):

// Find flattened list of some explicitly specified property values... 
var flattened = something.SelectMany(e => new [] { e.Run_ID.ToString(), e.Process.ToString() }); 

Не уверен, если это то, что ваш после, но это может быть шагом в правильном направлении.

Смежные вопросы