void UpdateCharSets() { mCharSet = ""; var sb = new HashSet <char> (); var LanIndexes = new List <int> (); for (int i = 0; i < mLanguageSource.mLanguages.Count; ++i) { if (mCharSetTool_Languages.Contains(mLanguageSource.mLanguages[i].Name)) { LanIndexes.Add(i); } } foreach (var termData in mLanguageSource.mTerms) { for (int i = 0; i < LanIndexes.Count; ++i) { int iLanguage = LanIndexes[i]; bool isRTL = LocalizationManager.IsRTL(mLanguageSource.mLanguages[iLanguage].Code); AppendToCharSet(sb, termData.Languages[iLanguage], isRTL); } } var bytes = System.Text.Encoding.UTF8.GetBytes(sb.ToArray().OrderBy(c => c).ToArray()); mCharSet = System.Text.Encoding.UTF8.GetString(bytes); }