Vb.net 从Cultureinfo.NativeName获取语言名称

Vb.net 从Cultureinfo.NativeName获取语言名称,vb.net,cultureinfo,Vb.net,Cultureinfo,我有以下代码 lstLanguage.Items.Add(CultureInfo.GetCultureInfo("en-US").NativeName) lstLanguage.SelectedIndex = 0 当下面的代码运行时 Dim strLanguageCode As String = CType(lstLanguage.SelectedItem, CultureInfo).NativeName 它抛出一个异常 System.InvalidCastException: Unable

我有以下代码

lstLanguage.Items.Add(CultureInfo.GetCultureInfo("en-US").NativeName)
lstLanguage.SelectedIndex = 0
当下面的代码运行时

Dim strLanguageCode As String = CType(lstLanguage.SelectedItem, CultureInfo).NativeName
它抛出一个异常

System.InvalidCastException:
Unable to cast object of type 'System.String' to type 'System.Globalization.CultureInfo'.

代码有什么问题

无法将字符串强制转换为CultureInfo,因此您会得到InvalidCastException

我猜您想要实现的是显示一个本地文化名称列表,当用户选择一个时,您希望能够检索与之相关的原始语言代码或CultureInfo。通常的处理方法是将CultureInfo分配给列表,并提供一个查看器,通过NativeName将CultureInfo转换为字符串