This article brings a small collection of my more commonly used string extensions. For those who don’t know about extension methods, I suggest reading this short article.
Get the initials from a string
public static string ToInitials(this string str) { return Regex.Replace(str, @"^(?'b'w)w*,s*(?'a'w)w*$|^(?'a'w)w*s*(?'b'w)w*$", "${a}${b}", RegexOptions.Singleline) }
Remove line breaks from string
public static string RemoveLineBreaks(this string lines) { return lines.Replace("r", "").Replace("n", ""); }
Replace line breaks in a string
public static string ReplaceLineBreaks(this string lines, string replacement) { return lines.Replace("rn", replacement) .Replace("r", replacement) .Replace("n", replacement); }
Strip HTML syntax from a string
public static string StripHtml(this string html) { if (string.IsNullOrEmpty(html)) return string.Empty; return Regex.Replace(html, @"<[^>]*>", string.Empty); }
Pluralise a word
public static string Pluralise(this string value, int count) { if (count <= 1) { return value; } return PluralizationService .CreateService(new CultureInfo("en-US")) .Pluralize(value); }
and then
Console.WriteLine( "You have {0} {1} left", player.Lives, "life".Pluralise(player.Lives) );
Get Suffix From Date
public static string GetDateSuffix(this DateTime date) { string day = date.Day.ToString(); if (day.EndsWith("1")) { return day.StartsWith("1") && date.Day != 1 ? "th" : "st"; } else if (day.EndsWith("2")) { return day.StartsWith("1") ? "th" : "nd"; } else if (day.EndsWith("3")) { return day.StartsWith("1") ? "th" : "rd"; } return "th"; }
Add Working Days to Date
public static DateTime AddWeekdays(DateTime start, int days) { int remainder = days % 5; int weekendDays = (days / 5) * 2; DateTime end = start.AddDays(remainder); if (start.DayOfWeek == DayOfWeek.Saturday && days > 0) { // fix for saturday. end = end.AddDays(-1); } if (end.DayOfWeek == DayOfWeek.Saturday && days > 0) { // add two days for landing on saturday end = end.AddDays(2); } else if (end.DayOfWeek < start.DayOfWeek) { // add two days for rounding the weekend end = end.AddDays(2); } // add the remaining days return end.AddDays(days + weekendDays - remainder); }