C# 有没有一种方法可以;试着解析;指向System.Globalization.CultureInfo的字符串

C# 有没有一种方法可以;试着解析;指向System.Globalization.CultureInfo的字符串,c#,cultureinfo,C#,Cultureinfo,在C#中,我使用 CultureInfo.GetCultureInfo(myCulture) 但是字符串变量的格式可能不好,有没有办法先尝试解析字符串或先验证它。下面是所有区域性的集合: CultureInfo.GetCultures(CultureTypes.AllCultures) 从那里,您可以执行以下操作,而不是GetCultureInfo: .FirstOrDefault(c => c.Name == myCulture) 您可能希望过滤掉所有文化,而不是所有文化。在我的项

在C#中,我使用

CultureInfo.GetCultureInfo(myCulture)

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

下面是所有区域性的集合:

CultureInfo.GetCultures(CultureTypes.AllCultures)
从那里,您可以执行以下操作,而不是
GetCultureInfo

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

您可能希望过滤掉所有文化,而不是
所有文化。

在我的项目中,我总是使用一个小助手。所有算术类型都得到了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);

文化对象中没有tryparse。一种方法是按照建议遍历所有区域性并查找其中一种,另一种方法是使用简单的try-parse:

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

特里帕斯什么?为了在标题中写入
int
@Habib,他想将
字符串
解析为
文化信息
@UweKeim,现在看到答案,问题变得更清楚了。那么,正如最初的海报所问的那样,
double
CultureInfo
有什么关系呢?如果你一直在做这件事,你甚至可以在
字典中找到所有的文化。如:
static readonly Dictionary culturedictionary=CultureInfo.GetCultures(CultureTypes.AllCultures).ToDictionary(c=>c.Name)catch
更改为
catch(CultureNotFoundException ex)