diff --git a/src/BootstrapBlazor.Server/Components/Samples/Table/TablesFilter.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/Table/TablesFilter.razor.cs index f9361af753d..502f5c74077 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/Table/TablesFilter.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/Table/TablesFilter.razor.cs @@ -46,7 +46,7 @@ private async Task> OnGetAddressItemsAsync() { // 模拟数据库延时 await Task.Delay(500); - return Items.Select(i => new SelectedItem(i.Address!, i.Address!)).DistinctBy(i => i.Value).ToList(); + return [.. Items.Select(i => new SelectedItem(i.Address!, i.Address!)).DistinctBy(i => i.Value)]; } private Task> OnQueryAsync(QueryPageOptions options) diff --git a/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs b/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs index 44a14c8f8cb..9b0af82c035 100644 --- a/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs +++ b/src/BootstrapBlazor/Components/Filters/MultiFilter.razor.cs @@ -46,6 +46,12 @@ public partial class MultiFilter [Parameter] public RenderFragment? LoadingTemplate { get; set; } + /// + /// Gets or sets the string comparison option used for filtering operations. Default is + /// + [Parameter] + public StringComparison StringComparison { get; set; } = StringComparison.OrdinalIgnoreCase; + private string? _searchText; private List? _source; @@ -226,7 +232,7 @@ private Task OnSearchValueChanged(string? val) { if (!string.IsNullOrEmpty(_searchText)) { - _items = _source.Where(i => i.Text.Contains(_searchText)).ToList(); + _items = [.. _source.Where(i => i.Text.Contains(_searchText, StringComparison))]; } else { diff --git a/test/UnitTest/Components/TableFilterTest.cs b/test/UnitTest/Components/TableFilterTest.cs index ddad78b4f7a..21e24e50674 100644 --- a/test/UnitTest/Components/TableFilterTest.cs +++ b/test/UnitTest/Components/TableFilterTest.cs @@ -101,8 +101,9 @@ public async Task MultiFilter_Ok() { b.OpenComponent(0); b.AddAttribute(1, nameof(MultiFilter.ShowSearch), true); - b.AddAttribute(2, nameof(MultiFilter.OnGetItemsAsync), () => Task.FromResult(new List() { new("test1", "test1") })); - b.AddAttribute(1, nameof(MultiFilter.AlwaysTriggerGetItems), true); + b.AddAttribute(2, nameof(MultiFilter.StringComparison), StringComparison.OrdinalIgnoreCase); + b.AddAttribute(3, nameof(MultiFilter.OnGetItemsAsync), () => Task.FromResult(new List() { new("test1", "test1") })); + b.AddAttribute(4, nameof(MultiFilter.AlwaysTriggerGetItems), true); b.CloseComponent(); })); builder.CloseComponent();