IsUpper
, IsLower
Some C# strings contain only lowercase letters. These strings do not need to be lowercased. By testing first, we can avoid excess work.
We must implement our own custom IsLower
and IsUpper
methods. We add them with extension methods in a static
class
.
This program contains a static
class
of extension methods. The IsUpper
and IsLower
methods are public static
methods written with the extension method syntax.
IsUpper
and IsLower
extension methods on various string
literals.string
is defined as uppercase if it contains no lowercase letters. It is lowercase if it contains no uppercase letters.string
containing only uppercase or only lowercase letters.using System; static class Extensions { public static bool IsUpper(this string value) { // Consider string to be uppercase if it has no lowercase letters. for (int i = 0; i < value.Length; i++) { if (char.IsLower(value[i])) { return false; } } return true; } public static bool IsLower(this string value) { // Consider string to be lowercase if it has no uppercase letters. for (int i = 0; i < value.Length; i++) { if (char.IsUpper(value[i])) { return false; } } return true; } } class Program { static void Main() { Console.WriteLine("test".IsLower()); // True Console.WriteLine("test".IsUpper()); Console.WriteLine("Test".IsLower()); Console.WriteLine("Test".IsUpper()); Console.WriteLine("TEST3".IsLower()); Console.WriteLine("TEST3".IsUpper()); // True } }True False False False False True
We used extension method syntax. In large projects, using a static
class
of extension methods is often simpler than trying to remember different static
methods in different classes.
We implemented IsUpper
and IsLower
for strings. These methods perform a fast scanning of the source string
, rather than requiring another allocation and conversion.