From c49cfb9cccf6018660e8d3809910700f53a040bf Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 15 Aug 2025 12:54:46 +0800 Subject: [PATCH 1/2] feat: support case-sensitive --- src/BootstrapBlazor/Extensions/LambdaExtensions.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Extensions/LambdaExtensions.cs b/src/BootstrapBlazor/Extensions/LambdaExtensions.cs index a77c62302f2..f3ca14afdfe 100644 --- a/src/BootstrapBlazor/Extensions/LambdaExtensions.cs +++ b/src/BootstrapBlazor/Extensions/LambdaExtensions.cs @@ -230,8 +230,9 @@ private static Expression GetExpression(this FilterKeyValueAction filter, Expres private static BinaryExpression Contains(this Expression left, Expression right) { - var method = typeof(string).GetMethod("Contains", [typeof(string)])!; - return Expression.AndAlso(Expression.NotEqual(left, Expression.Constant(null)), Expression.Call(left, method, right)); + var method = typeof(string).GetMethod("Contains", [typeof(string), typeof(StringComparison)])!; + var comparison = Expression.Constant(StringComparison.OrdinalIgnoreCase); + return Expression.AndAlso(Expression.NotEqual(left, Expression.Constant(null)), Expression.Call(left, method, right, comparison)); } #region Count From c662178e80d542e6897dddca7da97083acaf2df7 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Fri, 15 Aug 2025 12:54:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?test:=20=E6=9B=B4=E6=96=B0=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Extensions/LambadaExtensionsTest.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/UnitTest/Extensions/LambadaExtensionsTest.cs b/test/UnitTest/Extensions/LambadaExtensionsTest.cs index ab24e5c429e..07b9b6d47e9 100644 --- a/test/UnitTest/Extensions/LambadaExtensionsTest.cs +++ b/test/UnitTest/Extensions/LambadaExtensionsTest.cs @@ -244,6 +244,10 @@ public void GetExpression_Contains() var filter = new FilterKeyValueAction() { FieldKey = "Name", FieldValue = "test", FilterAction = FilterAction.Contains }; var invoker = filter.GetFilterLambda().Compile(); Assert.True(invoker.Invoke(new Foo() { Name = "1test1" })); + Assert.True(invoker.Invoke(new Foo() { Name = "1Test1" })); + Assert.True(invoker.Invoke(new Foo() { Name = "1Test123" })); + Assert.True(invoker.Invoke(new Foo() { Name = "Test" })); + Assert.True(invoker.Invoke(new Foo() { Name = "Test2" })); } [Fact]