反正有沒有在C# 中列出所有語言短代碼的情況下生成隨機語言短代碼?我正在考慮使用所有短代碼創建串列并使用 random 選擇隨機一個,但我需要在不使用 list或列出所有語言的情況下進行。
我正在使用的代碼:
var random = new Random();
var languages = new List<string>{ "en","ak","cz","gu" }; //Many more.., i also need to somehow grab all of them from: https://www.science.co.il/language/Codes.php
int index = random.Next(languages.Count);
Console.WriteLine(list[index]);
uj5u.com熱心網友回復:
如果您只想處理 .net 支持的 2 個字符的 ISO 639-1 文化,您可以這樣做:
string[] names =
CultureInfo.GetCultures(CultureTypes.AllCultures)
.Select(culture => culture.TwoLetterISOLanguageName)
.Where(name => name.Length == 2)
.Distinct()
.OrderBy(name => name)
.ToArray();
這給出了以下名稱串列:
aa af ak amar as az ba be bg bm bn bo br bs ca ce co cs cu cy da de dv dz ee el en eo es et eu fa ff fi fo fr fy ga gd gl gn gu gv ha he hi hr hu hy ia id ig ii is it iu iv ja jv ka ki kk kl km kn ko ks kw ky lb lg ln lo lt lu lv mg mi mk ml mn mr ms mt my nb nd ne nl nn nr oc om 或os pa pl ps pt qu rm rn ro ru rw sa sd se sg si sk sl sn so sq sr ss st sv sw ta te tg th ti tk tn to tr ts tt ug uk ur uz ve vi vo wo xh yi yo zh zu
但請注意,這不是語言代碼的完整串列。
如果要包含 3 個字符的 ISO 名稱,請洗掉.Where(name => name.Length == 2). 如果沒有該過濾器,還會回傳以下名稱:
agq arn asa ast bas bem bez brx byn ccp ceb cgg chr ckb dav dje dsb dua dyo ebu ewo fil fur gsw guz haw hsb jgo jmc kab kde kea khq kkj kln kok ksb ksflurch mg ksflurch mg moh mua mzn naq nds nmg nnh nqo nso nus nyn prg quc rof rwk sah saq sbp seh ses shi sma smj smn sms ssy syr teo tig twq tzm vai vun wagghal
(讓我們不要太擔心 TwoLetterISOLanguageName 屬性實際上包含大量 3 個字符的事實......)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369364.html
