Skip to content

string.StartsWith(“--”) returns true for “/*” in case of mi and mi-NZ culture #43772

@soocho-MSFT

Description

@soocho-MSFT
foreach (var ci in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
    System.Threading.Thread.CurrentThread.CurrentCulture = ci;
    System.Threading.Thread.CurrentThread.CurrentUICulture = ci;

    Console.WriteLine("1 " + "/*".StartsWith("--").ToString() + "\t" + ci.ToString());
    Console.WriteLine("2 " + "/*".EndsWith("--").ToString() + "\t" + ci.ToString());
    Console.WriteLine("3 " + string.Compare("/*", "--").ToString() + "\t" + ci.ToString());
    Console.WriteLine("4 " + "/*".Equals("--").ToString() + "\t" + ci.ToString());
    Console.WriteLine("5 " + "/*".IndexOf("--").ToString() + "\t" + ci.ToString());
}

...
1 False mgo-CM
2 False mgo-CM
3 1     mgo-CM
4 False mgo-CM
5 -1    mgo-CM
1 True  mi
2 True  mi
3 1     mi
4 False mi
5 0     mi
1 True  mi-NZ
2 True  mi-NZ
3 1     mi-NZ
4 False mi-NZ
5 0     mi-NZ
1 False mk
2 False mk
3 1     mk
4 False mk
5 -1    mk
...

For mi and mi-NZ, .StartsWith() and .EndsWith() is returning true while .Compare() and .Equals() returns different result.

Is this a bug in .NET or something expected?

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-System.GlobalizationquestionAnswer questions and provide assistance, not an issue with source code or documentation.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions