Отбор и обратная сортировка строк из коллекции по условию

Отфильтруйте строки через StartsWith, отсортируйте OrderByDescending и материализуйте результат в ResultList. Явно задайте правила сравнения строк.

Короткий ответ

Что ответить на собеседовании

Отфильтруйте строки через StartsWith, отсортируйте OrderByDescending и материализуйте результат в ResultList. Явно задайте правила сравнения строк.

Подробный разбор

Ответ с пояснениями

Условие

В классе объявлены два свойства:

  • SourceList – исходный набор строк, например: {"string", "string2", "string3"}

  • ResultList – должен быть заполнен элементами из SourceList, которые:

    1. Начинаются с буквы s;
    2. Упорядочены по убыванию. Требуется реализовать метод Method1, который сформирует ResultList согласно указанным правилам.
public class SomeClass
{
    public List<string> SourceList { get; set; } = new List<string>() { "string", "string2", "string3" };

    public void Method1()
    {
        var filtered = new List<string>(SourceList);
        // здесь должна быть логика фильтрации и сортировки
    }
}

Ответ

Отфильтруйте строки через StartsWith, отсортируйте OrderByDescending и материализуйте результат в ResultList. Явно задайте правила сравнения строк.

Добавьте свойство и метод:

public List<string> ResultList { get; private set; } = new();

public void Method1()
{
    ResultList = SourceList
        .Where(s => s is not null && s.StartsWith("s", StringComparison.Ordinal))
        .OrderByDescending(s => s, StringComparer.Ordinal)
        .ToList();
}

Для примера результат — string3, string2, string. Ordinal означает посимвольное сравнение с учётом регистра. Если S тоже подходит, согласуйте OrdinalIgnoreCase. Исходная коллекция не меняется; сортировка отобранных k элементов требует O(k log k) времени.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее