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