What is the difference between InvariantCulture and Ordinal when comparing strings in C#?
Hi everyone! I'm a beginner C# developer and I've encountered a problem with string comparison. In Microsoft documentation, I often see two methods: `String.Compare` with `StringComparison.InvariantCulture` and `StringComparison.Ordinal`. But I don't fully understand the difference between them and when to use which.
For example, I have this code:
```csharp
string str1 = "Straße";
string str2 = "STRASSE";
bool result1 = string.Equals(str1, str2, StringComparison.InvariantCultureIgnoreCase);
bool result2 = string.Equals(str1, str2, StringComparison.OrdinalIgnoreCase);
Console.WriteLine($"InvariantCulture: {result1}"); // True
Console.WriteLine($"Ordinal: {result2}"); // False
```
Why are the strings considered equal when using `InvariantCulture`, but not when using `Ordinal`? After all
No answers yet.
Log in to leave an answer