public override object this[string name, int index]
        {
            get
            {
                ElementReferenceSecurityDataArray elm = (ElementReferenceSecurityDataArray)this[name]; //checks name

                int elmIndex = 0;
                foreach (var item in elm.Elements)
                {
                    if (elmIndex == index)
                    {
                        return(item);
                    }
                    elmIndex++;
                }

                return(base[name, index]);
            }
        }
        public override object this[string name, int index]
        {
            get
            {
                ElementReferenceSecurityDataArray secArray = (ElementReferenceSecurityDataArray)this[name]; //parent class checks the name

                int itemCount = 0;
                foreach (var item in secArray.Elements)
                {
                    if (itemCount == index)
                    {
                        return(item);
                    }

                    itemCount++;
                }

                return(base[name, index]);
            }
        }
 internal ElementReference(MessageReference arg)
 {
     this._securities = new ElementReferenceSecurityDataArray((ElementReferenceSecurityDataArray)arg.Elements.First());
 }
 internal MessageReference(CorrelationID corr, Dictionary <string, Dictionary <string, object> > fieldData) : base(new Name("ReferenceDataResponse"), corr, null)
 {
     this._securities = new ElementReferenceSecurityDataArray(fieldData);
 }
 //copy constructor
 internal ElementReferenceSecurityDataArray(ElementReferenceSecurityDataArray arg)
 {
     this._securities = new List<Element>(arg._securities);
 }
 internal ElementReference(MessageReference arg)
 {
     this._securities = new ElementReferenceSecurityDataArray((ElementReferenceSecurityDataArray)arg.Elements.First());
 }
 internal ElementReferenceSecurityDataArray(ElementReferenceSecurityDataArray arg) //copy constructor
 {
     this._securities = new List <ElementReferenceSecurityData>(arg._securities);
 }
 internal MessageReference(CorrelationID corr, Dictionary<string, Dictionary<string, object>> fieldData)
     : base(new Name("ReferenceDataResponse"), corr, null)
 {
     this._securities = new ElementReferenceSecurityDataArray(fieldData);
 }