Моя програма читає файл 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)
?