有没有办法“尝试解析”字符串到System.Globalization.CultureInfo

时间:2012-09-10 05:06:07

标签: c# cultureinfo

在C#中,我正在使用

CultureInfo.GetCultureInfo(myCulture)

但字符串变量可能格式不正确,有没有办法先尝试解析字符串或先验证它。

3 个答案:

答案 0 :(得分:8)

以下是所有文化的集合:

CultureInfo.GetCultures(CultureTypes.AllCultures)

从那里开始,而不是GetCultureInfo你能做到:

.FirstOrDefault(c => c.Name == myCulture)

而不是AllCultures您可能希望过滤掉SpecificCultures

答案 1 :(得分:-1)

没有带有文化对象的tryparse。一种方法是按照建议浏览所有文化并查找其中一种方法,另一种方法是使用简单的try解析:

try
{
    // making sure the lang is a calture
    System.Globalization.CultureInfo c = new System.Globalization.CultureInfo(lang);
}
catch
{
    lang = Session["lang"].ToString();
}

答案 2 :(得分:-3)

我总是在我的项目中使用一个小帮手。所有算术类型都有TryParse方法

public static bool TryParseDouble(this string text, out double value)
{
   return double.TryParse(text, NumberStyles.Any,
                          CultureInfo.InvariantCulture, out value);
}

用法

double value;
bool isStringOK = theString.TryParseDouble(out value);