/// <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);
        }