/// <summary>
        /// Convert anymous objects into AnonymousObjectCollection
        /// </summary>
        /// <param name="data">Objects</param>
        /// <returns>reutrn AnonymousObjectCollection with AnonymousObjects</returns>
        private static AnonymousObjectCollection TurnObjectIntoAnonymousObjectCollection(object data)
        {
            const BindingFlags attr = BindingFlags.Public | BindingFlags.Instance;
            var dict = new AnonymousObjectCollection();

            PropertyInfo[] prop = data.GetType().GetProperties(attr);

            if (prop != null)
            {
                foreach (var property in prop)
                {
                    if (property.CanRead)
                    {
                        AnonymousObject CreateObject = new AnonymousObject();
                        CreateObject.KeyName = property.Name;
                        CreateObject.SetValue(property.GetValue(data, null));

                        dict.Add(CreateObject);
                    }
                }
            }
            else
            {
                throw (new ArgumentNullException("AnonymousObjectCollection", "no propertys for " + attr));
            }

            return(dict);
        }
 /// <summary>
 /// Add AnoymousObject to collection
 /// </summary>
 /// <param name="aObject">Insert AnonymousObject</param>
 public void Add(AnonymousObject aObject)
 {
     if (List.Contains(aObject))
     {
         throw (new ArgumentNullException("AnonymousObjectCollection Add - " + aObject.KeyName + " already exists", "this keyname '" + aObject.KeyName + "' already exists"));
     }
     else
     {
         List.Add(aObject);
     }
 }