Удаление окончания у слов в списке

День добрый! Есть список содержащий различные символы:

  • 84ыва846ыв88сСлово545выщв
  • 324ошаовыщоСловоаошуа
  • лщвфыозСловофаовшщв

Необходимо обрезать Слово и все что после него. Количество символов до и после конкретного слова могут быть различны.

Читал различные ресурсы, но только редактирование находил по определенному символу, буду премного благдарен!


Ответы (2 шт):

Автор решения: Aarnihauta

Создадим метод RemoveWords(str, word).

В теле метода получаем индекс методом IndexOf(str, word) и Remove(startIndex, length) удаляем все символы.

Почитать про StringBuilder можно вот тут

Почитать про IndexOf() можно вот тут

Почитать про Remove() можно вот тут

static void Main(string[] args)
{
    string str = "84ыва846ыв88сСлово545выщв";

    string removedWordString = RemoveWord(str, "Слово");
    Console.WriteLine(removedWordString);
    Console.ReadKey();
}

static string RemoveWords(string str, string word)
{
    StringBuilder builder = new StringBuilder(str);
    int index = str.IndexOf(word);
    builder.Remove(index, str.Length - index);

    return builder.ToString();
}
→ Ссылка
Автор решения: Vitaliy Zlobin

Решение в одну строку:

string CutTextByWord(string text, string word) => text.Substring(0, text.IndexOf(word));

Вот как это выглядит:

using System;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            var text = "84ыва846ыв88сСлово545выщв";
            var word = "Слово";

            Console.WriteLine(CutTextByWord(text, word));
            Console.ReadLine();
        }

        static string CutTextByWord(string text, string word) => text.Substring(0, text.IndexOf(word));
    }
}

Результат: 84ыва846ыв88с

→ Ссылка