title: Dictionary<K,V>.ToString() more generic implementation
body: <p>I have this question from <a href="https://stackoverflow.com/questions/3639094/most-efficient-dictionaryk-v-tostring-with-formatting">Most efficient Dictionary.ToString() with formatting?</a>, but my problem is if V is List, how to make it works. Now my solution is, 
    change </p>
  
  <pre><code>itemString.AppendFormat(format, item.Key, item.Value);
  </code></pre>
  
  <p>to </p>
  
  <pre><code>itemString.AppendFormat(format, item.Key, item.Value.ToDelimitedStr());
  </code></pre>
  
  <p>here is code of ToDelimitedStr:</p>
  
  <pre><code>    public static string ToDelimitedStr&lt;T&gt;(this T source)
      {
          // List&lt;string&gt; 
          if (source is IList &amp;&amp;
              source.GetType().IsGenericType)
          {
              Type t1 = source.GetType().GetGenericArguments()[0];
              if (t1.Name == "String")
                  ((IEnumerable&lt;string&gt;)source).ToDelimitedString();
          }
          return source.ToString();
      }
  </code></pre>
  
  <p>which only work for <code>List&lt;string&gt;</code>. How I can make it more generic? 
  Also, I'm thinking, maybe I should not work on the top of  </p>
  
  <pre><code>public string DictToString&lt;T, V&gt;(IEnumerable&lt;KeyValuePair&lt;T, V&gt;&gt; items, string format)
  </code></pre>
  
  <p>I should create a new version like</p>
  
  <pre><code>public string DictListToString&lt;T, List&lt;V&gt;&gt;(IEnumerable&lt;KeyValuePair&lt;T, List&lt;V&gt;&gt;&gt; items, string format)
  </code></pre>
  
  <p>how about that?</p>
  
  <p>Thank you so much</p>
  
  <p>Wes</p>