Skip to content

cagrin/LikeComparison

Repository files navigation

NuGet Nuget Coverage Status

LikeComparison

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.

Key Features

  • Supports multiple SQL syntaxes:

  • Extension Methods:

    • Like() and ILike() for string comparisons
    • MSTest: Assert.That.IsLike() and IsILike()
    • Shouldly: ShouldBeLike() and ShouldBeILike()
  • 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%");

About

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.

Resources

License

Stars

Watchers

Forks

Contributors