Dot-Net

將三字母語言名稱解析為文化資訊

  • August 6, 2018

我正在使用一個 API,它返回有關文件中音頻流的一些資訊,更具體地說,是其三字母 ISO 名稱 ( ISO 639-2 ) 表示形式的音頻語言。

我想將此資訊解析為新的CultureInfo對象,但沒有建構子採用三字母程式碼。我當然可以編寫一個巨大的 select 語句(為 C# 人員切換),但我認為首先詢問更好的方法會更具成本效益。那麼是我運氣不好還是有一種秘密方法可以使用三個字母名稱創建 CultureInfo 對象?

編輯:對不起,我使用了錯誤的屬性:

public static CultureInfo FromISOName(string name)
{
   return CultureInfo
       .GetCultures(CultureTypes.NeutralCultures)
       .FirstOrDefault(c => c.ThreeLetterISOLanguageName == name);
}

但是,列表中仍然存在重複項,並且不支持“dut”。

我會選擇 Balazs 解決方案,但在您的情況下使用 CultureTypes.NeutralCultures 會更好,因為您似乎並不關心地區/國家數據。

它總是返回一個不需要 FirstOrDefault 的 CultureInfo

引用自:https://stackoverflow.com/questions/9841106