2011-05-31 10 views
2

Je vérifie une ligne de code de mon projetComment obtenir les dernières valeurs de tableaux

if ((test == 0) && 
    lenght.Matches(new Version(Convert.ToInt64(version)))) 

Chaque fois que je débogués je reçois currentVersion comme une valeur constante de 18 nombre de chiffres, mais le résultat que je voulais est le dernier données exisitng version

Je reçois « length » en utilisant le code suivant

length.Version = (long)data.Version.Rows[0]["Version"]; 

donc je pense qu'il est toujours de prendre des tableaux rangées première valeur, comment Puis-je modifier ce code afin qu'il donnera la dernière valeur des tableaux

Répondre

4

Utilisation LINQ expression

currentVersion.Version = (long)m_spodata.DataVersion.Rows.Last()["Version"]; 

L'utilisation Rows.Count propriété

currentVersion.Version = 
    (long) m_spodata.DataVersion.Rows[m_spodata.DataVersion.Rows.Count - 1]["Version"]; 
+0

Vous Mising soit un '' .Length' ou un Count' ou 'Count()' selon que 'Rows' est un tableau, un' ICollection' ou un autre type de 'IEnumerable' dans votre deuxième suggestion. – ChrisWue

+0

Code mis à jour ^) – VMAtm

+0

je vérifiais qui est plus opotimized parmi les réponses – shanethomson11

2

Vous cherchez

DataVersion.Rows[DataVersion.Count - 1]["Version"]; 
1
currentVersion.Version = 
    (long)m_spodata.DataVersion.Rows[m_spodata.DataVersion.Rows.Length-1]["Version"]; 
2

Cette retourne la version max de lignes:

m_spodata.DataVersion.Rows.Select(p => p["Version"]).Max(); 

Ce dernier élément retourne (par index) du tableau:

m_spodata.DataVersion.Rows.Last()["Version"]; 
+0

j'utilise visual-studio 2005 – shanethomson11

Questions connexes