System.Xml.XmlTextReaderImpl.AttributeDuplCheck C# (CSharp) Méthode

AttributeDuplCheck() private méthode

private AttributeDuplCheck ( ) : void
Résultat void
        private void AttributeDuplCheck()
        {
            if (_attrCount < MaxAttrDuplWalkCount)
            {
                for (int i = _index + 1; i < _index + 1 + _attrCount; i++)
                {
                    NodeData attr1 = _nodes[i];
                    for (int j = i + 1; j < _index + 1 + _attrCount; j++)
                    {
                        if (Ref.Equal(attr1.localName, _nodes[j].localName) && Ref.Equal(attr1.ns, _nodes[j].ns))
                        {
                            Throw(SR.Xml_DupAttributeName, _nodes[j].GetNameWPrefix(_nameTable), _nodes[j].LineNo, _nodes[j].LinePos);
                        }
                    }
                }
            }
            else
            {
                if (_attrDuplSortingArray == null || _attrDuplSortingArray.Length < _attrCount)
                {
                    _attrDuplSortingArray = new NodeData[_attrCount];
                }
                Array.Copy(_nodes, _index + 1, _attrDuplSortingArray, 0, _attrCount);
                Array.Sort(_attrDuplSortingArray, 0, _attrCount);

                NodeData attr1 = _attrDuplSortingArray[0];
                for (int i = 1; i < _attrCount; i++)
                {
                    NodeData attr2 = _attrDuplSortingArray[i];
                    if (Ref.Equal(attr1.localName, attr2.localName) && Ref.Equal(attr1.ns, attr2.ns))
                    {
                        Throw(SR.Xml_DupAttributeName, attr2.GetNameWPrefix(_nameTable), attr2.LineNo, attr2.LinePos);
                    }
                    attr1 = attr2;
                }
            }
        }
XmlTextReaderImpl