public object Clone() { QCollection retval = new QCollection(); retval.availableItems = availableItems; foreach (object obj in this) { object newObj = ((ICloneable)obj).Clone(); retval.Add(newObj); } return(retval); }