by Anonymous » 18 Aug 2025, 19:22
Ich frage mich, wie der richtige Weg ist, zwei Charaktere zu vergleichen, die den Fall ignorieren und für alle Kulturen funktionieren. Ist auch Compuster .Default der beste Weg, um zwei Zeichen zu testen, ohne den Fall zu ignorieren? Funktioniert dies für Ersatzpairs?
Code: Select all
public class CaseInsensitiveCharComparer : IComparer {
private readonly System.Globalization.CultureInfo ci;
public CaseInsensitiveCharComparer(System.Globalization.CultureInfo ci) {
this.ci = ci;
}
public CaseInsensitiveCharComparer()
: this(System.Globalization.CultureInfo.CurrentCulture) { }
public int Compare(char x, char y) {
return Char.ToUpper(x, ci) - Char.ToUpper(y, ci);
}
}
// Prints 3
Console.WriteLine("This is a test".CountChars('t', new CaseInsensitiveCharComparer()));
Ich frage mich, wie der richtige Weg ist, zwei Charaktere zu vergleichen, die den Fall ignorieren und für alle Kulturen funktionieren. Ist auch Compuster .Default der beste Weg, um zwei Zeichen zu testen, ohne den Fall zu ignorieren? Funktioniert dies für Ersatzpairs?[code]public class CaseInsensitiveCharComparer : IComparer {
private readonly System.Globalization.CultureInfo ci;
public CaseInsensitiveCharComparer(System.Globalization.CultureInfo ci) {
this.ci = ci;
}
public CaseInsensitiveCharComparer()
: this(System.Globalization.CultureInfo.CurrentCulture) { }
public int Compare(char x, char y) {
return Char.ToUpper(x, ci) - Char.ToUpper(y, ci);
}
}
// Prints 3
Console.WriteLine("This is a test".CountChars('t', new CaseInsensitiveCharComparer()));
[/code]