Я использую AutoSuggestBox в универсальном приложении Windows на Win10. Я могу отфильтровать предложения просто отлично, но порядок испорчен. Например, в моем случае предложения - это названия городов. Когда я ввожу 't' в поле, я ожидаю увидеть сначала «Тегеран», а не «Афины», потому что он находится наверху списка, который содержит все города с «t».Как получить более точные результаты поиска с помощью AutoSuggestBox?
Я понимаю, что мне нужен список, отсортированный по
City.Name.IndexOf(sender.Text, StringComparison.OrdinalIgnoreCase)
но то, что является самым простым и наиболее эффективным способом для достижения этой цели? Мой код следующим образом:
private void AutoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
{
// Only get results when it was a user typing
if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
{
List<string> myList = new List<string>();
foreach (City myCity in Cities)
{
if (myCity.Name.IndexOf(sender.Text, StringComparison.OrdinalIgnoreCase) >= 0)
{
myList.Add(myCity.Name);
}
}
sender.ItemsSource = myList;
}
}
Проблема заключается в том, что он не включает в себя все другие города, в которых есть «t», прямо под городами, начинающимися с «t», – Freakishly