public static ICodeWriter AppendLines <TKey, TValue>(this ICodeWriter writer, Dictionary <TKey, TValue> collection, Func <TKey, TValue, string> predicate)
        {
            foreach (var pair in collection)
            {
                writer.AppendLine(predicate(pair.Key, pair.Value));
            }

            return(writer);
        }
        //public static SwitchBuilder SwitchExpression(this ICodeWriter writer, string switchOn)
        //{
        //    return new SwitchBuilder(writer, switchOn, true);
        //}

        public static ICodeWriter AppendLines <T>(this ICodeWriter writer, IEnumerable <T> collection, Func <T, string> predicate)
        {
            foreach (var value in collection)
            {
                writer.AppendLine(predicate(value));
            }

            return(writer);
        }