public string Capitalize(CodeNamespace codeNamespace, CodeTypeMember member) { var name = member.GetOriginalName(); if (name == member.Name) { if (!member.IsAnonymousType()) { name = member.Name; } else { name = codeNamespace.GetNamesFromItems(member.Name).FirstOrDefault(); if (name == null) { name = member.Name; } } } var matches = _wordRegEx.Matches(name); if (matches.Count == 0) { return(member.Name); } var nameParts = matches.Cast <Match>().Select(x => x.Value); var result = new StringBuilder(); foreach (var namePart in nameParts) { if (char.IsDigit(namePart.First())) { result.Append(namePart); } else if (namePart.All(char.IsUpper) && namePart.Length >= _capitalizeAllUpperMinLength) { result.Append(namePart.Substring(0, 1)).Append(namePart.Substring(1).ToLower()); } else { result.Append(namePart.Substring(0, 1).ToUpper()).Append(namePart.Substring(1)); } } var resultName = result.ToString(); if (!char.IsLetter(resultName[0])) { return(member.Name); } return(resultName); }