Meine Anwendung liest eine Excel-Datei mit VSTO und fügt die gelesenen Daten zu a hinzu StringDictionary
. Es werden nur Daten hinzugefügt, bei denen es sich um Zahlen mit wenigen Ziffern handelt (1000 1000,2 1000,34 - Komma ist ein Trennzeichen in russischen Standards).
Was ist besser, um zu überprüfen, ob die aktuelle Zeichenfolge eine geeignete Nummer ist?
object data, string key; // data had read
try
{
Convert.ToDouble(regionData, CultureInfo.CurrentCulture);
dic.Add(key, regionData.ToString());
}
catch (InvalidCastException)
{
// is not a number
}
oder
double d;
string str = data.ToString();
if (Double.TryParse(str, out d)) // if done, then is a number
{
dic.Add(key, str);
}
Ich muss StringDictionary
anstelle von Dictionary<string, double>
wegen der folgenden Parsing-Algorithmus Probleme verwenden.
Meine Fragen: Welcher Weg ist schneller? Welches ist sicherer?
Und ist es besser anzurufen Convert.ToDouble(object)
oder Convert.ToDouble(string)
?