Esempio n. 1
0
        public static string Render <K, V>(this IEnumerable <KeyValuePair <K, V> > source)
        {
            string fieldDelimiter = String.Empty;

            var builder = new StringBuilder();

            builder.Append('[');

            if (source != null)
            {
                foreach (var current in source)
                {
                    builder.Append(fieldDelimiter);
                    builder.Append(RenderAny(current.Key));
                    builder.Append('=');
                    if (ReferenceEquals(current.Value, null))
                    {
                        builder.Append("null");
                    }
                    else if (current.Value.GetType().IsGenericDictionary())
                    {
                        builder.Append(MagicMarker.NewMagicDictionary <object, object>(current.Value));
                    }
                    else if (current.Value is string)
                    {
                        builder.Append(RenderAny(current.Value));
                    }
                    else if (current.Value is IEnumerable)
                    {
                        builder.Append(Render((IEnumerable)current.Value));
                    }
                    else
                    {
                        builder.Append(RenderAny(current.Value));
                    }
                    fieldDelimiter = ", ";
                }
            }

            builder.Append(']');
            return(builder.ToString());
        }