LikeComparison is a C# library that enables string pattern matching using SQL-style LIKE expressions. It mimics the behavior of the LIKE operator found in SQL dialects, making it useful for many .NET use cases.
-
Supports multiple SQL syntaxes:
- Visual Basic:
*,?,[ ],^,# - Transact-SQL:
%,_,[ ],!, with optionalESCAPE - PostgreSQL:
LIKEandILIKE(case-insensitive), using%,_
- Visual Basic:
-
Extension Methods:
Like()andILike()for string comparisons- MSTest:
Assert.That.IsLike()andIsILike() - Shouldly:
ShouldBeLike()andShouldBeILike()
-
Cross-platform compatibility:
- .NET 8.0 and 10.0 (recommended)
- .NET Standard 2.0 (experimental support with C# 8)
Using Like method on strings from LikeComparison package
You can simply use extension method on String class:
using LikeComparison.VisualBasic;string? matchExpression = "abcdef";
bool isLike = matchExpression.Like(pattern: "a*");or
using LikeComparison.TransactSql;string? matchExpression = "abcdef";
// common use
bool isLike = matchExpression.Like(pattern: "a%");
// or with escape character
bool isLike = matchExpression.Like(pattern: "/a%", escapeCharacter: "/");or
using LikeComparison.PostgreSql;string? matchExpression = "abcdef";
// case-insensitive
bool isLike = matchExpression.ILike(pattern: "A%");
// or case-sensitive
bool isLike = matchExpression.Like(pattern: "a%");Using IsLike method on MSTest assertions from LikeComparison.MSTest package
You can simply use extension method on Assert class:
using LikeComparison.VisualBasic;string? matchExpression = "abcdef";
Assert.That.IsLike(matchExpression, pattern: "a*");or
using LikeComparison.TransactSql;string? matchExpression = "abcdef";
// common use
Assert.That.IsLike(matchExpression, pattern: "a%");
// or with escape character
Assert.That.IsLike(matchExpression, pattern: "/a%", escape: "/");or
using LikeComparison.PostgreSql;string? matchExpression = "abcdef";
// case-insensitive
Assert.That.IsILike(matchExpression, pattern: "A%");
// or case-sensitive
Assert.That.IsLike(matchExpression, pattern: "a%");Using ShouldBeLike method on Shouldly assertions from LikeComparison.Shouldly package
You can simply use extension method on String class:
using LikeComparison.VisualBasic;string? matchExpression = "abcdef";
matchExpression.ShouldBeLike(pattern: "a*");or
using LikeComparison.TransactSql;string? matchExpression = "abcdef";
// common use
matchExpression.ShouldBeLike(pattern: "a%");
// or with escape character
matchExpression.ShouldBeLike(pattern: "/a%", escape: "/");or
using LikeComparison.PostgreSql;string? matchExpression = "abcdef";
// case-insensitive
matchExpression.ShouldBeILike(pattern: "A%");
// or case-sensitive
matchExpression.ShouldBeLike(pattern: "a%");