Skip to content

Commit 940c31e

Browse files
authored
refactor(Table): improve performance use Contains (#6891)
* refactor: 更新代码 * refactor: 更新 GetColumnsListState 方法 * chore: bump version 9.11.2-beta07 * refactor: 使用 ToHashSet 提高性能
1 parent c579ce1 commit 940c31e

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

src/BootstrapBlazor/BootstrapBlazor.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk.Razor">
22

33
<PropertyGroup>
4-
<Version>9.11.2-beta06</Version>
4+
<Version>9.11.2-beta07</Version>
55
</PropertyGroup>
66

77
<ItemGroup>

src/BootstrapBlazor/Components/Table/Table.razor.Toolbar.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -475,11 +475,15 @@ public Func<TItem, bool>? ShowDeleteButtonCallback
475475
public IEnumerable<ITableColumn> GetVisibleColumns()
476476
{
477477
// 不可见列
478-
var items = _visibleColumns.Where(i => i.Visible).ToList();
479-
return Columns.Where(i => !i.GetIgnore() && items.Find(v => v.Name == i.GetFieldName()) != null && ScreenSize >= i.ShownWithBreakPoint);
478+
var items = _visibleColumns.Where(i => i.Visible).Select(a => a.Name).ToHashSet();
479+
return Columns.Where(i => !i.GetIgnore() && items.Contains(i.GetFieldName()) && ScreenSize >= i.ShownWithBreakPoint);
480480
}
481481

482-
private bool GetColumnsListState(ColumnVisibleItem item) => _visibleColumns.Find(i => i.Name == item.Name) is { Visible: true } && _visibleColumns.Where(i => i.Visible).DistinctBy(i => i.Name).Count(i => i.Visible) == 1;
482+
private bool GetColumnsListState(ColumnVisibleItem item)
483+
{
484+
var items = _visibleColumns.Where(i => i.Visible).Select(a => a.Name).Distinct().ToHashSet();
485+
return items.Contains(item.Name) && items.Count == 1;
486+
}
483487

484488
private bool ShowAddForm { get; set; }
485489

0 commit comments

Comments
 (0)