@@ -59,7 +59,7 @@ public partial class SelectCity
5959 private string ? GetActiveClass ( string item ) => CssBuilder . Default ( )
6060 . AddClass ( "active" , _values . Contains ( item ) && IsMultiple )
6161 . AddClass ( "active" , CurrentValue == item && ! IsMultiple )
62- . AddClass ( "prev" , ! string . IsNullOrEmpty ( _searchText ) && PinyinService . GetFirstLetters ( item ) . StartsWith ( _searchText ) )
62+ . AddClass ( "prev" , ! string . IsNullOrEmpty ( _searchText ) && StartsWith ( PinyinService . GetFirstLetters ( item ) , _searchText ) )
6363 . Build ( ) ;
6464
6565 /// <summary>
@@ -168,7 +168,7 @@ private HashSet<string> GetProvinces()
168168 return Provinces ;
169169 }
170170
171- if ( PinyinService . IsChinese ( _searchText ) )
171+ if ( PinyinService . ContainsChinese ( _searchText ) )
172172 {
173173 return [ .. Provinces . Where ( i => i . Contains ( _searchText ) || GetCities ( i ) . Any ( city => city . Contains ( _searchText ) ) ) ] ;
174174 }
@@ -177,7 +177,10 @@ private HashSet<string> GetProvinces()
177177 }
178178
179179 [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
180- private static bool FilterProvince ( ProvinceItem item , string searchText ) => item . PinYin . StartsWith ( searchText ) || item . Cities . Any ( city => city . PinYin . StartsWith ( searchText ) ) ;
180+ private static bool FilterProvince ( ProvinceItem item , string searchText ) => StartsWith ( item . PinYin , searchText ) || item . Cities . Any ( city => StartsWith ( city . PinYin , searchText ) ) ;
181+
182+ [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
183+ private static bool StartsWith ( HashSet < string > source , string searchText ) => source . Any ( i => i . StartsWith ( searchText , StringComparison . OrdinalIgnoreCase ) ) ;
181184
182185 private static HashSet < ProvinceItem > ? _provinceItems ;
183186
0 commit comments