C# · 12月 26, 2021

c# – 如何制作所有文化的下拉列表(但不重复)

我试图制作2个下拉列表.

最高的一个提供所有文化(但不重复).
例如:英文,西班牙文,菲律宾语

从顶部列表中选择后,底部列表将显示任何特定类型.

我现在正在使用这个代码作为我的顶级列表.

foreach (CultureInfo cultureInfo in CultureInfo.GetCultures(CultureTypes.NeutralCultures))

不过菲律宾(菲律宾)
我宁愿不使用GetCultures(CultureTypes.AllCultures)),因为它一次显示太多.

看来我可能需要把NeutralCultures加载到IList里面.
然后遍历AllCultures,以确保它的ThreeLetterISOLanguageName在列表中,如果不添加它.

有最好的做法吗?

谢谢

解决方法@H_404_24@ 查看不同 CultureTypes值的参考.它告诉你每个包含什么.

我想你想要一切除了特定文化的东西?您可以将所有非特定文化组合成一个集合或获得所有文化,并排除特定文化.第二种方法在LINQ中最容易表达:

var cultures = CultureInfo.GetCultures(CultureTypes.AllCultures) .Except(CultureInfo.GetCultures(CultureTypes.SpecificCultures));