String.Equals GID返回false?

Hon*_*Vit 17 c# asp.net string localization

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

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);
Run Code Online (Sandbox Code Playgroud)

结果:

CCC = false ;

xx = true;

zz = true;

我不知道为什么CCCfalse.有什么不对的吗?如果我设置culture = id, ko, en等等......那么CCC = true.谁能帮我?

Dmi*_*nko 25

这是gI是不是等于GI在的情况下,越南语.gi(GI)是音节 - 首字母,一种是一个字母,gI而是两个单独的字母.其他对是

cH != CH
kH != KH
nG != NG
nH != NH
pH != PH
qU != QU
tH != TH
tR != TR
Run Code Online (Sandbox Code Playgroud)

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


小智 7

你可以试试

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);
Run Code Online (Sandbox Code Playgroud)

在这CCC将返回,trueCCC1将返回false因为文化.根据你的文化GIDgId不同.