Ancestry.Daisy.Utils.StringExtentions.SplitNameParts C# (CSharp) Method

SplitNameParts() public static method

public static SplitNameParts ( string str ) : IEnumerable
str string
return IEnumerable
        public static IEnumerable<string> SplitNameParts(string str)
        {
            var sb = new StringBuilder();
            foreach (var c in str)
            {
                if( (char.IsUpper(c)
                      || c == '_')
                    && sb.Length > 0
                    )
                {
                    yield return sb.ToString();
                    sb = new StringBuilder();
                }
                if(c != '_') sb.Append(c);
            }
            if(sb.Length > 0)
            {
                yield return sb.ToString();
            }
        }