Argentini.Halide.H3Text.TitleCase C# (CSharp) Method

TitleCase() public static method

Converts a string to title case.
public static TitleCase ( string input, bool ignoreShortWords ) : String
input string The string to convert.
ignoreShortWords bool If true, does not capitalize the most common 70 prepositions.
return String
        public static String TitleCase(string input, bool ignoreShortWords)
        {
            List<string> ignoreWords = null;

            if (ignoreShortWords)
            {
                ignoreWords = new List<string>();
                ignoreWords.Add("a");
                ignoreWords.Add("is");
                ignoreWords.Add("was");
                ignoreWords.Add("the");
                ignoreWords.Add("aboard");
                ignoreWords.Add("about");
                ignoreWords.Add("above");
                ignoreWords.Add("across");
                ignoreWords.Add("after");
                ignoreWords.Add("against");
                ignoreWords.Add("along");
                ignoreWords.Add("amid");
                ignoreWords.Add("among");
                ignoreWords.Add("anti");
                ignoreWords.Add("around");
                ignoreWords.Add("as");
                ignoreWords.Add("at");
                ignoreWords.Add("before");
                ignoreWords.Add("behind");
                ignoreWords.Add("below");
                ignoreWords.Add("beneath");
                ignoreWords.Add("beside");
                ignoreWords.Add("besides");
                ignoreWords.Add("between");
                ignoreWords.Add("beyond");
                ignoreWords.Add("but");
                ignoreWords.Add("by");
                ignoreWords.Add("concerning");
                ignoreWords.Add("considering");
                ignoreWords.Add("despite");
                ignoreWords.Add("down");
                ignoreWords.Add("during");
                ignoreWords.Add("except");
                ignoreWords.Add("excepting");
                ignoreWords.Add("excluding");
                ignoreWords.Add("following");
                ignoreWords.Add("for");
                ignoreWords.Add("from");
                ignoreWords.Add("in");
                ignoreWords.Add("inside");
                ignoreWords.Add("into");
                ignoreWords.Add("like");
                ignoreWords.Add("minus");
                ignoreWords.Add("near");
                ignoreWords.Add("of");
                ignoreWords.Add("off");
                ignoreWords.Add("on");
                ignoreWords.Add("onto");
                ignoreWords.Add("opposite");
                ignoreWords.Add("outside");
                ignoreWords.Add("over");
                ignoreWords.Add("past");
                ignoreWords.Add("per");
                ignoreWords.Add("plus");
                ignoreWords.Add("regarding");
                ignoreWords.Add("round");
                ignoreWords.Add("save");
                ignoreWords.Add("since");
                ignoreWords.Add("than");
                ignoreWords.Add("through");
                ignoreWords.Add("to");
                ignoreWords.Add("toward");
                ignoreWords.Add("towards");
                ignoreWords.Add("under");
                ignoreWords.Add("underneath");
                ignoreWords.Add("unlike");
                ignoreWords.Add("until");
                ignoreWords.Add("up");
                ignoreWords.Add("upon");
                ignoreWords.Add("versus");
                ignoreWords.Add("via");
                ignoreWords.Add("with");
                ignoreWords.Add("within");
                ignoreWords.Add("without");
            }

            Boolean isBetweenWords = true;
            String newString = input.ToLower();
            StringBuilder sb = new StringBuilder(newString.Length);

            for (Int32 x = 0; x < newString.Length; x++)
            {
                Char c = newString[x];

                if (c > 96)
                {
                    if (isBetweenWords)
                    {
                        Boolean goAhead = true;

                        if (ignoreShortWords)
                        {
                            for (Int32 y = 0; y < ignoreWords.Count; y++)
                            {
                                if (newString.Length - x >= ignoreWords[y].Length)
                                {
                                    if (newString.Substring(x, ignoreWords[y].Length) == ignoreWords[y].ToLower())
                                    {
                                        if (newString.Length - x > ignoreWords[y].Length)
                                        {
                                            if (Convert.ToChar(newString.Substring(x + ignoreWords[y].Length, 1)) < 97)
                                            {
                                                goAhead = false;
                                                y = ignoreWords.Count;
                                            }
                                        }

                                        else
                                        {
                                            goAhead = false;
                                            y = ignoreWords.Count;
                                        }
                                    }
                                }
                            }
                        }

                        if (goAhead)
                        {
                            isBetweenWords = false;
                            sb.Append(newString[x].ToString().ToUpper());
                        }

                        else
                        {
                            isBetweenWords = false;
                            sb.Append(newString[x].ToString());
                        }
                    }

                    else
                    {
                        sb.Append(newString[x].ToString());
                    }
                }

                else
                {
                    isBetweenWords = true;
                    sb.Append(newString[x].ToString());
                }
            }

            return sb.ToString();
        }

Same methods

H3Text::TitleCase ( string input ) : String