@Gurpreet - Так? Вы спросили «какой подход самый лучший», а не «какой самый быстрый». Конечно, вы всегда можете сделать некоторые жесткие оптимизации. Когда вы делаете такую ​​оптимизацию, вы теряете много времени с точки зрения удобства сопровождения и читабельности кода.

я есть ObservableCollection, где MyData - это класс с 4 свойствами, то есть int id, имя строки, bool IsSelected, строка IsVisible.

Эта коллекция ObservableCollection привязана к комбинированному списку с флажками (например, данные городов). Теперь, когда пользователь устанавливает флажки, а затем в следующий раз, когда он открывает раскрывающийся список - все выборы должны идти сверху в порядке возрастания имени.

Я также реализовал автозаполнение, когда пользователь вводит 3 символа в поле со списком, откроется выпадающий список, показывающий сначала все выбранные элементы, а затем все элементы, начиная с 3 символов, введенных пользователем.

Я исследовал и реализовал следующий код, и он работает нормально, но я хочу знать, является ли это лучшим подходом, или я могу реализовать это лучше, код:

        IEnumerable<MyData> sort;
        ObservableCollection<MyData> tempSortedCities = new ObservableCollection<MyData>();
        sort = City.OrderByDescending(item => item.IsSelected).ThenBy(item => item.Name.ToUpper()) ; 
       // City is my observablecollection<MyData> property in my Model binded to combobox in UI
        foreach (var item in sort)
            tempSortedCities.Add(item);


        City.Clear(); // City is my observablecollection<MyData> property in my Model
        City = tempSortedCities;
        tempSortedCities = null;
        sort = null;  

Спасибо заранее за ваше время !

Ответы на вопрос(1)

Ваш ответ на вопрос