需要一些帮助,因为这使我发疯,我无法确定我是否在做愚蠢的事情。

我正在尝试收集所有特定文化的列表,并获取它们对应的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()语句期间不断抛出异常,错误如下;



引起问题的文化是aa-ER。如您所见,我已经基于IsNeutralCulture bool 值过滤了列表,因此网络框架不认为这种文化是中立的,但是错误却相反。

我在做蠢事吗?

编辑:有趣的是,第一个注释使我在不同的机器上对其进行了测试,而这并没有在相同的区域性上引发错误。看起来像是机器问题。

最佳答案

确定,因此,作为解决此问题的方法,我将Select语句更改为初始化x.Name而不是x.LCID的RegionInfo,并且此方法已经奏效。不知道为什么LCID失败,但是此解决方案可以。

09-07 03:03