需要帮助,因为这让我发疯了,我不知道我是不是在做什么蠢事。
我正在收集所有特定文化的列表,并得到相应的RegionInfo。从这个列表中,我试图得到一个由参数提供的国家对应的区域。我试图通过LINQ,如下图所示;
public RegionInfo getregion(string country)
{
RegionInfo thisregion;
List<RegionInfo> regions = new List<RegionInfo>();
CultureInfo[] allregions = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
regions.AddRange(allregions.Where(x => !x.IsNeutralCulture).Select(x => new RegionInfo(x.LCID)));
thisregion = regions.FirstOrDefault(region => region.EnglishName == country);
return thisregion;
}这个特定的函数在Select()语句期间一直抛出一个异常,下面是错误;
附加信息:区域性ID 4096 (0x1000)是中性区域性;无法从中创建区域。
引起这一问题的文化是aa-ER。正如您所看到的,我已经根据IsNeutralCulture布尔值对列表进行了筛选,所以net框架并不认为这种文化是中性的,但是错误却不这样认为。
我在做什么蠢事吗?
编辑:有趣的是,第一条评论引导我在另一台机器上测试它,它没有将错误抛到相同的文化中。看上去是机器问题。
发布于 2016-08-17 12:46:48
好的,为了解决这个问题,我更改了Select语句以初始化RegionInfo for x.Name,而不是x.LCID,这已经奏效了。不知道为什么LCID失败了,但是这个解决方案可以。
https://stackoverflow.com/questions/38996346
复制相似问题