Прописные проблемы

Как я могу вывести это, когда я использую Replace и ToUpper в Visual Studio C#

Имя

Вот мой код:

private void button1_Click(object sender, EventArgs e)
{
    string input;
    input = comboBox1.Text;
    input = input.Replace("_", "");
    label1.Text = input.First().ToString().ToUpper() 
                     + String.Join("", input.Skip(1));    
}

Выход всегда такой:

Имя

2 ответа

Если ввод "first_name", то это работает:

var text = "first_name";

text = String.Join("",
    text
        .Split('_')
        .Where(x => !String.IsNullOrEmpty(x))
        .Select(x => new string(
            x
                .Take(1)
                .Select(c => char.ToUpperInvariant(c))
                .Concat(x.Skip(1))
                .ToArray())));

Этот код ниже получает первый символ (типа char) входной строки, затем преобразует его в строку и вводит первую букву в верхнем регистре:

input.First().ToString() + ...

в следующем сегменте вашего кода вы добавляете остаток строки с помощью разделителя строк emtpy с первой буквой:

... + String.Join("", input.Skip(1))

Поэтому, если вы хотите сделать все первые буквы заглавными, вы должны использовать LINQ, предоставленный Enigmativity.

Другие вопросы по тегам