Moja aplikacja odczytuje plik Excela za pomocą VSTO i dodaje odczytane dane do pliku StringDictionary
. Dodaje tylko dane, które są liczbami z kilkoma cyframi (1000 1000,2 1000,34 - przecinek jest separatorem w rosyjskich standardach).
Co lepiej sprawdzić, czy bieżący ciąg jest odpowiednią liczbą?
object data, string key; // data had read
try
{
Convert.ToDouble(regionData, CultureInfo.CurrentCulture);
dic.Add(key, regionData.ToString());
}
catch (InvalidCastException)
{
// is not a number
}
lub
double d;
string str = data.ToString();
if (Double.TryParse(str, out d)) // if done, then is a number
{
dic.Add(key, str);
}
Muszę używać StringDictionary
zamiast z Dictionary<string, double>
powodu następujących problemów z algorytmem analizowania.
Moje pytania: Która droga jest szybsza? Który jest bezpieczniejszy?
A czy lepiej zadzwonić Convert.ToDouble(object)
czy Convert.ToDouble(string)
?