Usage
Various fairly self-explanatory short string extensions.
Snippet
using System; using System.Collections.Generic; using System.Linq; namespace My.Helpers { // String extension methods. public static class StringExtensions { public static int CompareTrimmed(this string text, string str, bool ignoreCase = true) { return String.Compare(text.Trim(), str.Trim(), ignoreCase); } public static bool ContainsIgnoreCase(this string text, string value) { return (text.IndexOf(value, System.StringComparison.OrdinalIgnoreCase) > 0); } public static bool ContainsIgnoreCase(this string text, string value, out int index) { index = text.IndexOf(value, System.StringComparison.OrdinalIgnoreCase); return (index >= 0); } public static bool EndsWithIgnoreCase(this string text, string value) { return text.EndsWith(value, System.StringComparison.CurrentCultureIgnoreCase); } public static string Left(this string text, int maxLength) { if (maxLength <= 0) return ""; int count = Math.Min(maxLength, text.Length); return text.Substring(0, count); } public static string ReplaceIgnoreCase(this string text, string value1, string value2) { string work = text; int start = 0; var caseInsensitive = System.StringComparison.CurrentCultureIgnoreCase; while (true) { int i = work.IndexOf(value1, start, caseInsensitive); if (i < 0) break; work = work.Left(i) + value2 + work.Right(work.Length - i - value1.Length); start += value2.Length; } return work; } public static string Right(this string text, int maxLength) { if (maxLength <= 0) return ""; int start = Math.Max(text.Length - maxLength, 0); int count = Math.Min(maxLength, text.Length - start); return text.Substring(start, count); } public static bool StartsWithIgnoreCase(this string text, string value) { return text.StartsWith(value, System.StringComparison.CurrentCultureIgnoreCase); } public static string StripNonNumeric(this string text) { return text.StripNonNumeric(false); } public static string StripNonNumeric(this string text, bool stopAtFirst) { string result = ""; foreach (var c in text) { if ((c.CompareTo('0') >= 0) && (c.CompareTo('9') <= 0)) result += c; else { if (stopAtFirst) break; } } return result; } public static byte[] ToByteArray(this string text) { int count = text.Length; byte[] result = new byte[count]; for (int i = 0; i < count; i++) result[i] = (byte)text[i]; return result; } public static string ToCsv(this string text) { // Converts comma-delimited or space-delimited to comma-delimited. string[] fields; if (text.Contains(",") || !text.Contains(" ")) return text; // 'text' contains one or more spaces. string result = ""; fields = text.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (string field in fields) { if (result != "") result += ","; result += field.Trim(); } return result; } public static int[] ToIntArray(this string text) { return Array.ConvertAll<string, int>(text.ToCsv().ToStringArray(), int.Parse); } public static List<int> ToListInt(this string text) { return text.ToIntArray().ToList<int>(); } public static string[] ToStringArray(this string text) { string[] result = text.ToCsv().Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < result.Count(); i++) result[i] = result[i].Trim(); return result; } public static List<string> ToListString(this string text) { return text.ToStringArray().ToList<string>(); } } }
No comments:
Post a Comment