TrimEnd() не работает

Я хочу обрезать конец строки, если она заканчивается на ",". Это запятая и пробел.

Я пробовал TrimEnd(', '), но это не работает. Это должно быть только в том случае, если строка заканчивается таким образом, поэтому я не могу просто использовать .Remove для удаления двух последних символов. Как я могу это сделать?

Ответ 1

string txt = "testing, ";
txt = txt.TrimEnd(',',' ');   // txt = "testing"

Здесь используется перегрузка TrimEnd(params char[] trimChars). Вы можете указать 1 или более символов, которые образуют набор символов для удаления. В этом случае запятая и пространство.

Ответ 2

Это должно работать:

string s = "Bar, ";

if (s.EndsWith(", "))
    s = s.Substring(0, s.Length - 2);

ИЗМЕНИТЬ

Подумайте об этом, это сделает хороший метод расширения:

public static String RemoveSuffix(this string value, string suffix)
{
    if (value.EndsWith(suffix))
        return value.Substring(0, value.Length - suffix.Length);

    return value;
}

Ответ 3

Попробуйте следующее:

string someText = "some text, ";
char[] charsToTrim = { ',', ' ' };
someText = someText.TrimEnd(charsToTrim);

Работает для меня.

Ответ 4

"value, ".Trim().TrimEnd(",") также должен работать.

Ответ 5

 if (model != null && ModelState.IsValid)
                {
                    var categoryCreate = new Categories
                    {
                        CategoryName = model.CategoryName.TrimStart().TrimEnd(),
                        Description = model.Description.TrimStart().TrimEnd()
                    };
                    _CategoriesService.Create(categoryCreate);
                }

TrimStart(). TrimEnd() == Левая обрезка и правая обрезка