也许有人知道,.NET Framework 4.0中CultureInfo.Name属性的最大长度是多少。
答案 0 :(得分:3)
答案:84
文档:(感谢@lethek发表评论) http://msdn.microsoft.com/en-us/library/system.globalization.cultureandregioninfobuilder.cultureandregioninfobuilder%28v=vs.100%29.aspx
我能够使用下面代码为84个字符的CultureAndRegionInfoBuilder类创建一个新文化。
CultureAndRegionInfoBuilder不允许使用超过84个字符的名称。要获得84个字符,您需要确保以“ - ”分隔的每个部分必须为8个字符或更少。你不能只创建一个名为“ThisIsLongerThan8Characters”的文化,因为它不超过8个字符而没有分隔符。 (请注意,我认为您可以以相同的方式使用“_”,但我没有尝试过)
要使以下代码正常工作,您需要引用sysglobl
程序集并导入System.Globalization
命名空间。
以下代码尝试在开始和结束时取消注册文化。注册完成后,我加载CultureInfo,格式化日期并显示Name和DisplayName。
希望这有用。
string cultureName = "qwertyui-12345678-qwertyui-12345678-qwertyui-12345678-qwertyui-12345678-qwertyui-123";
Console.WriteLine( "MAX LENGTH: " + cultureName.Length );
try {
CultureAndRegionInfoBuilder.Unregister( cultureName );
} catch {
Console.WriteLine( "Cannot remove culture" );
}
CultureAndRegionInfoBuilder builder = new CultureAndRegionInfoBuilder( cultureName , CultureAndRegionModifiers.None );
CultureInfo ci = new CultureInfo( "en-AU" );
RegionInfo ri = new RegionInfo( "US" );
builder.LoadDataFromCultureInfo( ci );
builder.LoadDataFromRegionInfo( ri );
builder.Register();
CultureInfo info = new CultureInfo( cultureName );
Console.WriteLine( DateTime.Now.ToString( info.DateTimeFormat.LongDatePattern ) );
Console.WriteLine( info.Name );
Console.WriteLine( info.DisplayName );
try {
CultureAndRegionInfoBuilder.Unregister( cultureName );
} catch {
Console.WriteLine( "Cannot remove culture" );
}
答案 1 :(得分:1)
它11.这是代码:
var count = CultureInfo.GetCultures(CultureTypes.AllCultures)
.Select(ci => ci.Name.Length)
.Max();
答案 2 :(得分:0)
根据以下代码:
public static void Test()
{
var culturesNames = from c in CultureInfo.GetCultures(CultureTypes.AllCultures)
select new { c.DisplayName, c.DisplayName.Length, c.Name };
foreach (var ci in culturesNames.OrderBy((o) => o.Length))
{
Console.WriteLine("{0} : {2} {1}", ci.DisplayName, ci.Length, ci.Name);
}
}
最大长度为50。 不要忘记开发人员可以创建自定义文化信息。