2012-05-10 2 views
0

Использование Linq - более эффективный способ сделать это?Idatareader to List

IDataReader reader = qSeats.ExecuteReader(); 
      var seats = new List<int>(); 
      using (IDataReader reader = qSeats.ExecuteReader()) 
      { 
       while (reader.Read()) 
       { 
        seats.Add(Convert.ToInt32(reader.GetInt32(0))); 
       } 
      } 

Я видел: How do I load data to a list from a dataReader? Однако это тот же код, я выше, и кажется, что там может быть более быстрые способы. Как использовать Linq или seat.AddRange() или какой-то ToList()

ответ

1

DataReader - только для чтения, только поток данных из базы данных только для чтения. То, как вы это делаете, возможно, самое быстрое.

Использование DataReader может увеличить производительность приложений как с помощью извлечения данных, как только он доступен, а не ждать целые результаты запроса должны быть возвращены, и (по умолчанию) хранить только одну строку в то время как в памяти, уменьшая системные издержки. Retrieving Data Using the DataReader

+0

За исключением того, что оно, как представляется, выполняется дважды – CRice