|
|
@@ -7,6 +7,11 @@ namespace Quadarax.Foundation.Core.Value.Extensions
|
|
|
{
|
|
|
public static class StringExt
|
|
|
{
|
|
|
+ /// <summary>
|
|
|
+ /// Default string comparer for like operator.
|
|
|
+ /// </summary>
|
|
|
+ public static IEqualityComparer<string> DefaultLikeComparer { get; set; } = new StringPatternComparer();
|
|
|
+
|
|
|
public static string Align(this string value, int size)
|
|
|
{
|
|
|
if (string.IsNullOrEmpty(value)) return new string(' ', size);
|
|
|
@@ -143,5 +148,18 @@ namespace Quadarax.Foundation.Core.Value.Extensions
|
|
|
.Where(c => !Char.IsWhiteSpace(c))
|
|
|
.ToArray());
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// Performs like operator on input string. customComparer can be provides to override default comparer.
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="input">Input string to compare</param>
|
|
|
+ /// <param name="searchPattern">Search pattern corresponds with comparer implementation.</param>
|
|
|
+ /// <param name="customComparer">Custom comparer. If not set, use default comparer (defined in <see cref="DefaultLikeComparer"/>)</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static bool Like(this string input,string searchPattern, IEqualityComparer<string>? customComparer = null)
|
|
|
+ {
|
|
|
+ customComparer ??= DefaultLikeComparer;
|
|
|
+ return customComparer.Equals(input, searchPattern);
|
|
|
+ }
|
|
|
}
|
|
|
}
|