String.Equals GID返回false?

时间:2017-09-25 07:06:16

标签: 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);

结果:

  

CCC = false ;

     

xx = true;

     

zz = true;

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

2 个答案:

答案 0 :(得分:25)

越南语的情况下, <{1>} <{1}}。 gIGI)是音节 - 首字母,一个字母,而gi两个单独的字母。其他对是

GI

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

答案 1 :(得分: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);

在此CCC将返回true,但由于文化CCC1将返回false。根据您的文化GIDgId不同。