Мое приложение считывает файл Excel с помощью VSTO и добавляет прочитанные данные в StringDictionary
. Он добавляет только данные, которые представляют собой цифры с несколькими цифрами (1000 1000,2 1000,34 - запятая - это разделитель в российских стандартах).
Что лучше проверить, соответствует ли текущая строка подходящему номеру?
object data, string key; // data had read
try
{
Convert.ToDouble(regionData, CultureInfo.CurrentCulture);
dic.Add(key, regionData.ToString());
}
catch (InvalidCastException)
{
// is not a number
}
или
double d;
string str = data.ToString();
if (Double.TryParse(str, out d)) // if done, then is a number
{
dic.Add(key, str);
}
Мне нужно использовать StringDictionary
вместо Dictionary<string, double>
из-за следующих проблем алгоритма синтаксического анализа.
Мои вопросы: Какой путь быстрее? Что безопаснее?
И лучше ли называть Convert.ToDouble(object)
или Convert.ToDouble(string)
?