Data Types C#

using System;
using System.ComponentModel;
using System.IO;
using System.Text;
using System.Xml;
namespace System.Collections.Specialized
{
  /// 
  /// Represents a collection of useful extenions methods.
  /// 

  public static class NameValueCollectionExtensons
  {
    /// 
    /// Joins the key/value pairs into a string of the follwing format:
    /// "Key1=Value1|Key2=Value2|...".
    /// 

    public static string Join(this NameValueCollection collection)
    {
      return Join(collection, "|");
    }
    /// 
    /// Joins the key/value pairs into a string of the follwing format:
    /// "Key1=Value1|Key2=Value2|...".
    /// 

    public static string Join(this NameValueCollection collection, string separator)
    {
      if(string.IsNullOrEmpty(separator))
        throw new ArgumentNullException("separator");
      StringBuilder sb = new StringBuilder();
      foreach(string key in collection.AllKeys)
        sb.AppendFormat("{0}={1}{2}", key, (collection[key] ?? string.Empty).ToString(), separator);
      return sb.ToString().TrimEnd(separator.ToCharArray());
    }
  }
}