выделение нескольких столбцов и цикл по выбранным строкам - PullRequest
0 голосов
/ 15 марта 2012

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

Что-то вроде select a.firstname, a.lastname from customer, где a.id = '123', и цикл по выброшенным строкам и их запись в строку типа

FirstName = John; LastName = Doe
FirstName = Steve; LastName = Smith

У меня есть выражение linq как

IList<string> strgradeandbatch = new List<string>();
strgradeandbatch = context.GradeAndBatches
                         .Where(T => T.RequestGuid == request.ItemGuid)
                         .Select(T => new{T.GradeName, T.Batch}).ToList();

Очевидно, что это неправильно, и не знаете, как это сделать. Заранее спасибо за помощь

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Я думаю, что вы почти правы. Просто удалите IList<string> strgradeandbatch = new List<string>() и используйте анонимный тип var strgradeandbatch.

string GradeName, Batch;
var strgradeandbatch = context.GradeAndBatches
                         .Where(T => T.RequestGuid == request.ItemGuid)
                         .Select(T => new{T.GradeName, T.Batch}).ToList();
foreach(var item in strgradeandbatch)
{
   GradeName = item.GradeName;
   Batch = item.Batch;
}

(Примечание: если вы используете анонимный тип, вы не можете вернуть это значение из метода)

1 голос
/ 15 марта 2012

Метод Select проецирует результаты запроса в список объектов анонимного типа, поэтому его можно использовать со списком для строк.

Одним из решений является создание нового класса

public class Grade

{
   public string GradeName {get; set;}
   public string Batch {get; set;}
}

Что будет использоваться с методом Select

var strgradeandbatch = context.GradeAndBatches
                         .Where(T => T.RequestGuid == request.ItemGuid)
                         .Select(T => new Grade
                              { 
                                GradeName = T.GradeName, 
                                Batch = T.Batch
                             }).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...