2016-03-20 9 views
0

Wenn möglich, Wie können wir Liste des Zeichenfolge zur Liste der Nachkommastellen mit decimal.TryParse Rückgabetyp, das konvertieren ist bool so, dass ich so etwas wie dieseconvert Liste <string> zur Liste <decimal> mit TryParse C#

if(true) 
{ 
//to do 
} 
else 
{ 
// to do 
} 
+2

zu konvertieren mit, was passieren soll, wenn die Zeichenfolge * kann * nicht erfolgreich umgesetzt werden? Eine Art von Schleife ist erforderlich, aber LINQ macht dies im Allgemeinen zu einer einfachen Aufgabe. Der gepostete Code ist auch ein bisschen .. verwirrend. – user2864740

Antwort

1

Sie einfach Ihre list<string> zu Array listItem[] von

umwandeln kannJetzt
listItem[] strArr = yourList.ToArray(); 

, definieren einige decimal array und versuchen, sie TryParse als

decimal n; 
decimal[] decArr; 
if(strArr.All(x => Decimal.TryParse(x, out n))) 
{ 
decArr = Array.ConvertAll<string,decimal>(strArr, Convert.ToDecimal); 
} 
else 
{ 
//to do 
} 
4

tue Unter der Annahme, dass ich bin der Auswahl der Werte nur die erfolgreich umgesetzt:

List<string> lstStr = GetListString(); // Get it somehow 

List<decimal> decs = lstStr.Select(str => 
{ 
    decimal item = 0m; 
    return new 
    { 
    IsParsed = decimal.TryParse(str, out item), 
    Value = item 
    }; 
}).Where(o => o.IsParsed).Select(o => o.Value).ToList(); 
Verwandte Themen