2011-07-04 3 views
2

J'ai un DataTable MyDtb1. Et j'ai la colonne "sl_no" varchar (10); Avec cette sl_no coloumn j'ai la valeur comme ci-dessous.Trouver Max() Valeur de DataTable - Varchar() Colonne?

 
MyDtb1.sl_no Column Values 

Search - Zero'th Row 
1 - 1 st Row 
2 -2 nd Row 
3 - 3 rd Row 
4 - 4 th Row 
Null - 5 th row 

De ce qui précède, je veux choisir le MAX (valeur) de sl_no et le résultat doit être « 4 »

Merci pour les idées.

Répondre

3
int x; 
    var maxVal = MyDtb1.AsEnumerable() 
     .Max (r => int.TryParse(r.Field<string>("sl_no"), out x) ? (int?)x : null); 
2

Quelque chose comme ça?

List<string> testList = new List<string> { 
    "Search", 
    "1", 
    "2", 
    "3", 
    "4", 
    null     
    }; 
int num; 
int maxNumeric = testList.Where(x => int32.TryParse(x, out num)).Select(x => Convert.ToInt32(x)).Max(); 
+0

Y at-il une raison quelconque vous l'analyse syntaxique de 'double' puis convertir à' int'? Int32 a sa propre méthode 'TryParse' ... –

+0

@djacobson, pas de bonne raison =) Tapez trop vite pour y penser - corrigé, merci – Smudge202

+0

Merci pour les aides ... – Paramu

Questions connexes