Как я могу смешать порядок слов в текстовом поле в C #?

1

Мне нужно создать программу, которая смешивает порядок слов в текстовом поле, когда я нажимаю кнопку, но порядок должен быть точно определен. Пользователь помещает предложение в текстовое поле, так что предложение отличается каждый раз. Порядок должен быть смешан с четными и нечетными числами. Допустим, что предложение "сегодня - прекрасный день". Теперь у нас есть 5 слов, и они должны быть смешаны нечетными числами и четными числами, поэтому порядок похож на этот "день сегодня красивый", потому что четные числа и нечетные числа идут вместе. сегодня [0], [2] и день [4] эти слова имеют четные числа, и они смешиваются друг с другом от самого большого до самого маленького, так что он идет от 4 до 0. То же самое с нечетными числами, но четными номерами имеют приоритет ( они должны быть первыми: 4,2,0,3,1). Может ли кто-нибудь дать мне пример того, как я могу это сделать?

  • 1
    Похоже на домашнюю работу. Вы что-нибудь сделали сами? В чем ваша проблема с этой задачей?
  • 0
    @SergeyBerezovskiy Да, все остальное я сделал сам, просто не знаю, как написать эту функцию для программы. Я пытался сделать что-то с помощью метода замены, но все, что я получил, это ошибки.
Показать ещё 1 комментарий
Теги:
textbox
order

1 ответ

4
Лучший ответ

Вы можете использовать LINQ-power:

string text = "today is a beautiful day";
var mixedWords = text.Split()                     // split by white-spaces
    .Select((word, index) => new { word, index }) // select anonymous type
    .GroupBy(x => x.index % 2)                    // remainder groups to split even and odd indices
    .OrderBy(xg => xg.Key)                        // order by even and odd, even first
    .SelectMany(xg => xg                          // SelectMany flattens the groups
        .OrderByDescending(x => x.index)          // order by index descending
        .Select(x => x.word));                    // select words from the anonymous type
string newText = string.Join(" ", mixedWords);    // "day a today beautiful is"
  • 0
    Понятно, что от ОП не было никаких попыток сделать это домашнее задание ..
  • 0
    @SergeyBerezovskiy: если это домашнее задание, я сомневаюсь, что OP все равно может использовать LINQ.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню