diff --git a/BootstrapBlazor.Extensions.slnx b/BootstrapBlazor.Extensions.slnx
index 20d0028d..61515384 100644
--- a/BootstrapBlazor.Extensions.slnx
+++ b/BootstrapBlazor.Extensions.slnx
@@ -50,7 +50,6 @@
-
diff --git a/src/Frameworks.props b/src/Frameworks.props
index c9c8e368..d11f0344 100644
--- a/src/Frameworks.props
+++ b/src/Frameworks.props
@@ -1,6 +1,10 @@
-
+
+ net6.0;net7.0;net8.0;net9.0
+
+
+
net6.0;net7.0;net8.0;net9.0;net10.0
diff --git a/src/components/BootstrapBlazor.Region/BootstrapBlazor.Region.csproj b/src/components/BootstrapBlazor.Region/BootstrapBlazor.Region.csproj
index 515ede6b..98f35d81 100644
--- a/src/components/BootstrapBlazor.Region/BootstrapBlazor.Region.csproj
+++ b/src/components/BootstrapBlazor.Region/BootstrapBlazor.Region.csproj
@@ -1,7 +1,11 @@
-
- 9.0.7
+
+ 9.0.8-beta01
+
+
+
+ 10.0.0-rc.2.1.0
@@ -17,9 +21,12 @@
-
-
-
+
+
+
+
+
+
diff --git a/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.cs b/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.cs
index 53f1ac6a..5ba16656 100644
--- a/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.cs
+++ b/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.cs
@@ -59,7 +59,7 @@ public partial class SelectCity
private string? GetActiveClass(string item) => CssBuilder.Default()
.AddClass("active", _values.Contains(item) && IsMultiple)
.AddClass("active", CurrentValue == item && !IsMultiple)
- .AddClass("prev", !string.IsNullOrEmpty(_searchText) && PinyinService.GetFirstLetters(item).StartsWith(_searchText))
+ .AddClass("prev", !string.IsNullOrEmpty(_searchText) && StartsWith(PinyinService.GetFirstLetters(item), _searchText))
.Build();
///
@@ -168,7 +168,7 @@ private HashSet GetProvinces()
return Provinces;
}
- if (PinyinService.IsChinese(_searchText))
+ if (PinyinService.ContainsChinese(_searchText))
{
return [.. Provinces.Where(i => i.Contains(_searchText) || GetCities(i).Any(city => city.Contains(_searchText)))];
}
@@ -177,7 +177,10 @@ private HashSet GetProvinces()
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- private static bool FilterProvince(ProvinceItem item, string searchText) => item.PinYin.StartsWith(searchText) || item.Cities.Any(city => city.PinYin.StartsWith(searchText));
+ private static bool FilterProvince(ProvinceItem item, string searchText) => StartsWith(item.PinYin, searchText) || item.Cities.Any(city => StartsWith(city.PinYin, searchText));
+
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ private static bool StartsWith(HashSet source, string searchText) => source.Any(i => i.StartsWith(searchText, StringComparison.OrdinalIgnoreCase));
private static HashSet? _provinceItems;
diff --git a/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.css b/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.css
index 6db486a9..0e2cefb8 100644
--- a/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.css
+++ b/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.css
@@ -86,10 +86,6 @@
display: none;
}
-.dropdown-menu-search .search-text {
- text-transform: uppercase;
-}
-
.dropdown-menu-search-body {
flex: 1;
height: 1%;
diff --git a/src/components/BootstrapBlazor.Region/Data/CityItem.cs b/src/components/BootstrapBlazor.Region/Data/CityItem.cs
index 38ba7491..3c3a988c 100644
--- a/src/components/BootstrapBlazor.Region/Data/CityItem.cs
+++ b/src/components/BootstrapBlazor.Region/Data/CityItem.cs
@@ -8,5 +8,5 @@ readonly record struct CityItem
{
public string Name { get; init; }
- public string PinYin { get; init; }
+ public HashSet PinYin { get; init; }
}
diff --git a/src/components/BootstrapBlazor.Region/Data/ProvinceItem.cs b/src/components/BootstrapBlazor.Region/Data/ProvinceItem.cs
index 5170a2e8..5ff522b1 100644
--- a/src/components/BootstrapBlazor.Region/Data/ProvinceItem.cs
+++ b/src/components/BootstrapBlazor.Region/Data/ProvinceItem.cs
@@ -8,7 +8,7 @@ readonly record struct ProvinceItem
{
public string Name { get; init; }
- public string PinYin { get; init; }
+ public HashSet PinYin { get; init; }
public HashSet Cities { get; init; }
}
diff --git a/src/components/BootstrapBlazor.Region/Extensions/ServiceCollectionExtension.cs b/src/components/BootstrapBlazor.Region/Extensions/ServiceCollectionExtension.cs
index f6280698..0a6ee55c 100644
--- a/src/components/BootstrapBlazor.Region/Extensions/ServiceCollectionExtension.cs
+++ b/src/components/BootstrapBlazor.Region/Extensions/ServiceCollectionExtension.cs
@@ -19,7 +19,6 @@ public static class ServiceCollectionExtension
public static IServiceCollection AddBootstrapBlazorRegionService(this IServiceCollection services)
{
services.AddSingleton();
- services.AddPinyinService();
return services;
}