Подтвердить что ты не робот

Есть ли в С# встроенная функция строкового ввода?

Я собирался написать собственное расширение С#, чтобы преобразовать строку в Proper Case (например, заглавную первую букву каждого слова), затем я задавался вопросом, не существует ли на месте С# -функция только что... есть?

4b9b3361

Ответ 2

String s  = "yOu caN Use thIs"

s = System.Threading.Thread.CurrentThread
           .CurrentCulture.TextInfo.ToTitleCase(s.ToLower());

Основное ограничение, которое я вижу в этом, заключается в том, что это не "истинный" заголовок. т.е. во фразе "WaR aNd peaCe", "и" часть должна быть строчной на английском языке. Этот метод мог бы использовать его в капитале.

Ответ 3

вы можете просто добавить некоторые методы расширения к типу Sting:

public static class StringExtension
{
    /// <summary>
    /// Use the current thread culture info for conversion
    /// </summary>
    public static string ToTitleCase(this string str)
    {
        var cultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture;
        return cultureInfo.TextInfo.ToTitleCase(str.ToLower());
    }

    /// <summary>
    /// Overload which uses the culture info with the specified name
    /// </summary>
    public static string ToTitleCase(this string str, string cultureInfoName)
    {
        var cultureInfo = new CultureInfo(cultureInfoName);
        return cultureInfo.TextInfo.ToTitleCase(str.ToLower());
    }

    /// <summary>
    /// Overload which uses the specified culture info
    /// </summary>
    public static string ToTitleCase(this string str, CultureInfo cultureInfo)
    {
        return cultureInfo.TextInfo.ToTitleCase(str.ToLower());
    }
}

Ответ 4

Это работает

public static string ConvertTo_ProperCase(string text) 
{
    TextInfo myTI = new CultureInfo("en-US", false).TextInfo;
    return myTI.ToTitleCase(text.ToLower());
}      

Ответ 5

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

public static string ToTitleCase(this string strX)
{
    string[] aryWords = strX.Trim().Split(' ');

    List<string> lstLetters = new List<string>();
    List<string> lstWords = new List<string>();

    foreach (string strWord in aryWords)
    {
        int iLCount = 0;
        foreach (char chrLetter in strWord.Trim())
        {
            if (iLCount == 0)
            {
                lstLetters.Add(chrLetter.ToString().ToUpper());
            }
            else
            {
                lstLetters.Add(chrLetter.ToString().ToLower());
            }
            iLCount++;
        }
        lstWords.Add(string.Join("", lstLetters));
        lstLetters.Clear();
    }

    string strNewString = string.Join(" ", lstWords);

    return strNewString;
}