处理以下程序的更好方法(可以使用Take / Skip / TakeWhile ..或更好的方法)

时间:2010-06-14 08:48:50

标签: c#-3.0

我有一个只有一行的数据表。但它有44列。我的任务是从第4行到结尾获取列。

从此以后,我完成了以下适合我要求的计划。 (请注意,dt是数据表)

List<decimal> lstDr = new List<decimal>();           

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

该计划没有任何危害。工作正常。

但是我觉得有一个更好的方法可以通过Skip ot Take或TakeWhile或其他任何东西来实现程序。

我正在寻找一个比我实施的更好的解决方案。

有可能吗?

我正在使用c#3.0

感谢。

1 个答案:

答案 0 :(得分:0)

这应该这样做:

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