Лучший способ обработки приведенной ниже программы (может быть с помощью Take / Skip / takeWhile.. или что-нибудь получше)

#c#-3.0

#c #-3.0

Вопрос:

У меня есть таблица данных, в которой есть только одна строка. Но в нем 44 столбца. Моя задача — получить столбцы от 4-й строки до конца.

С этого момента я создал приведенную ниже программу, которая соответствует моим требованиям. (пожалуйста, обратите внимание, что dt — это datatable)

 List<decimal&&t; lstDr = new List<decimal&&t;();           

Enumerable.Ran&e(0, dt.Columns.Count).ToList().ForEach(i =&&t;
{
   if (i &&t; 3) 
    lstDr.Add(Convert.ToDecimal(dt.Rows[0][i]));
}
);
  

В программе нет ничего плохого. Работает нормально.

Но я чувствую, что может быть лучший способ ручного управления программой, возможно, с помощью Skip ot Take или takeWhile или любого другого материала.

Я ищу решение получше того, которое я реализовал.

Возможно ли это?

Я использую c # 3.0

Спасибо.

Ответ №1:

Это должно сработать:

 List<Decimal&&t; lstDr =
  dt.Rows[0].ItemArray
  .Skip(3)
  .Select(o =&&t; Convert.ToDecimal(o))
  .ToList();
  

Комментарии:

1. Skip доступен только с .Net 3.5

2. @Itay: Он, должно быть, использует framework 3.5, поскольку Enumerable.Ran&e и ToList недоступен в версии 3.0.

3. ХОРОШО 🙂 об этом не подумал 🙂