String.Equals GID returning false?



我在我的ASP.NET MVC应用程序中具有以下C#代码。我尝试使用Equals方法与culture = "vi"比较2 string。我的代码下面:

string culture = "vi";
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
System.Threading.Thread.CurrentThread.CurrentUICulture = 
  System.Threading.Thread.CurrentThread.CurrentCulture;
var CCC = string.Equals("CategId", "CATEGID", StringComparison.CurrentCultureIgnoreCase);
var xx = string.Equals("TestGID", "TestGID", StringComparison.CurrentCultureIgnoreCase);
var zz = string.Equals("id", "ID", StringComparison.CurrentCultureIgnoreCase);

结果:

ccc = false ;

xx = true;

zz = true;

我不知道为什么CCCfalse。有什么不对的吗?如果我设置了culture = id, ko, en等...则为CCC = true。谁可以帮助我?

在越南语言的情况下,不等于 GIgI giGI)是音节初始的,有点一个字母,而 gI两个单独的字母。其他对是

cH != CH
kH != KH
nG != NG
nH != NH
pH != PH
qU != QU
tH != TH
tR != TR

https://en.wikipedia.org/wiki/vietnamese_language

您可以尝试

string culture = "vi";
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
System.Threading.Thread.CurrentThread.CurrentUICulture = 
  System.Threading.Thread.CurrentThread.CurrentCulture;
var CCC = string.Equals("CategId", "CATEGID", StringComparison.InvariantCultureIgnoreCase);
var CCC1 = string.Equals("CategId", "CATEGID", StringComparison.CurrentCultureIgnoreCase);

在此CCC中将返回true,但CCC1将返回false,因为 culture 。根据您的文化,GIDgId不同。

最新更新