2010-06-14 1 views
0

J'ai une table de données qui a seulement une ligne. Mais c'est avoir 44 colonnes. Ma tâche est d'obtenir les colonnes de la 4ème rangée jusqu'à la fin.Une meilleure façon de gérer le programme ci-dessous (peut être avec Take/Skip/TakeWhile .. ou quoi que ce soit de mieux)

Désormais, j'ai fait le programme ci-dessous qui convient à mes besoins. (Veuillez noter que dt est datatable)

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])); 
} 
); 

Il n'y a rien de mal à le programme. Fonctionne bien. Mais je pense qu'il pourrait y avoir une meilleure façon de gérer le programme que ce soit avec Skip of Take ou TakeWhile ou tout autre chose.

Je cherche une meilleure solution que celle que j'ai implémentée.

Est-ce possible? J'utilise C# 3.0

Merci.

Répondre

0

Cela devrait le faire:

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

Passer uniquement disponible à partir .Net 3.5 –

+0

@Itay: Il doit être en utilisant le framework 3.5, '' Enumerable.Range' et ToList' ne sont pas disponibles dans la version 3.0. – Guffa

+0

OK :) n'a pas pensé à ça :) –

Questions connexes