﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class Attributes
   | Apache Lucene.NET 4.8.0-beta00013 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class Attributes
   | Apache Lucene.NET 4.8.0-beta00013 Documentation ">
    <meta name="generator" content="docfx 2.56.2.0">
    
    <link rel="shortcut icon" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/favicon.ico">
    <link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.css">
    <link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.css">
    <link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.css">
    <meta property="docfx:navrel" content="toc.html">
    <meta property="docfx:tocrel" content="benchmark/toc.html">
    
    <meta property="docfx:rel" content="https://lucenenet.apache.org/docs/4.8.0-beta00009/">
    
  </head>
  <body data-spy="scroll" data-target="#affix" data-offset="120">
    <span id="forkongithub"><a href="https://github.com/apache/lucenenet" target="_blank">Fork me on GitHub</a></span>
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="/">
                <img id="logo" class="svg" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/lucene-net-color.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search">
            <ul class="level0 breadcrumb">
                <li>
                    <a href="https://lucenenet.apache.org/docs/4.8.0-beta00009/">API</a>
                     <span id="breadcrumb">
                        <ul class="breadcrumb">
                          <li></li>
                        </ul>
                    </span>   
                </li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items">
            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
          </div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Sax.Helpers.Attributes">
  
  
  <h1 id="Sax_Helpers_Attributes" data-uid="Sax.Helpers.Attributes" class="text-break">Class Attributes
  </h1>
  <div class="markdown level0 summary"><p>Default implementation of the <a class="xref" href="Sax.Helpers.Attributes.html">Attributes</a> interface.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><span class="xref">Attributes</span></div>
      <div class="level2"><a class="xref" href="Sax.Ext.Attributes2.html">Attributes2</a></div>
  </div>
  <div classs="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="Sax.IAttributes.html">IAttributes</a></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Sax.Helpers.html">Sax.Helpers</a></h6>
  <h6><strong>Assembly</strong>: Lucene.Net.Benchmark.dll</h6>
  <h5 id="Sax_Helpers_Attributes_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class Attributes : IAttributes</code></pre>
  </div>
  <h5 id="Sax_Helpers_Attributes_remarks"><strong>Remarks</strong></h5>
  <div class="markdown level0 remarks"><p><em>This module, both source code and documentation, is in the
Public Domain, and comes with<strong> NO WARRANTY</strong>.</em>
See <a href="http://www.saxproject.org">http://www.saxproject.org</a>
for further information.
<p>
This class provides a default implementation of the SAX2
<a class="xref" href="Sax.Helpers.Attributes.html">Attributes</a> interface, with the
addition of manipulators so that the list can be modified or
reused.
<p>There are two typical uses of this class:
<ul><li>to take a persistent snapshot of an Attributes object
 in a <a class="xref" href="Sax.IContentHandler.html#Sax_IContentHandler_StartElement_System_String_System_String_System_String_Sax_IAttributes_">StartElement(String, String, String, IAttributes)</a> event; or</li><li>to construct or modify an Attributes object in a SAX2 driver or filter.</li></ul>
<p>
This class replaces the now-deprecated SAX1 AttributeListImpl 
class; in addition to supporting the updated Attributes
interface rather than the deprecated IAttributeList 
interface, it also includes a much more efficient
implementation using a single array rather than a set of Vectors.</p>
</div>
  <h3 id="constructors">Constructors
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes__ctor.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.%23ctor%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L50">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes__ctor_" data-uid="Sax.Helpers.Attributes.#ctor*"></a>
  <h4 id="Sax_Helpers_Attributes__ctor" data-uid="Sax.Helpers.Attributes.#ctor">Attributes()</h4>
  <div class="markdown level1 summary"><p>Construct a new, empty <a class="xref" href="Sax.Helpers.Attributes.html">Attributes</a> object.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public Attributes()</code></pre>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes__ctor_Sax_IAttributes_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.%23ctor(Sax.IAttributes)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L63">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes__ctor_" data-uid="Sax.Helpers.Attributes.#ctor*"></a>
  <h4 id="Sax_Helpers_Attributes__ctor_Sax_IAttributes_" data-uid="Sax.Helpers.Attributes.#ctor(Sax.IAttributes)">Attributes(IAttributes)</h4>
  <div class="markdown level1 summary"><p>Copy an existing Attributes object.
<p>
This constructor is especially useful inside a
<a class="xref" href="Sax.IContentHandler.html#Sax_IContentHandler_StartElement_System_String_System_String_System_String_Sax_IAttributes_">StartElement(String, String, String, IAttributes)</a>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public Attributes(IAttributes atts)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Sax.IAttributes.html">IAttributes</a></td>
        <td><span class="parametername">atts</span></td>
        <td><p>The existing <a class="xref" href="Sax.Helpers.Attributes.html">Attributes</a> object.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_Length.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.Length%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L76">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_Length_" data-uid="Sax.Helpers.Attributes.Length*"></a>
  <h4 id="Sax_Helpers_Attributes_Length" data-uid="Sax.Helpers.Attributes.Length">Length</h4>
  <div class="markdown level1 summary"><p>Return the number of attributes in the list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual int Length { get; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_Length_seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_Length">Length</a></div>
  </div>
  <h3 id="methods">Methods
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_AddAttribute_System_String_System_String_System_String_System_String_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.AddAttribute(System.String%2CSystem.String%2CSystem.String%2CSystem.String%2CSystem.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L371">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_AddAttribute_" data-uid="Sax.Helpers.Attributes.AddAttribute*"></a>
  <h4 id="Sax_Helpers_Attributes_AddAttribute_System_String_System_String_System_String_System_String_System_String_" data-uid="Sax.Helpers.Attributes.AddAttribute(System.String,System.String,System.String,System.String,System.String)">AddAttribute(String, String, String, String, String)</h4>
  <div class="markdown level1 summary"><p>Add an attribute to the end of the list.
<p>For the sake of speed, this method does no checking
to see if the attribute is already in the list: that is
the responsibility of the application.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void AddAttribute(string uri, string localName, string qName, string type, string value)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">uri</span></td>
        <td><p>The Namespace URI, or the empty string if
none is available or Namespace processing is not
being performed.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">localName</span></td>
        <td><p>The local name, or the empty string if
Namespace processing is not being performed.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">qName</span></td>
        <td><p>The qualified (prefixed) name, or the empty string
if qualified names are not available.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">type</span></td>
        <td><p>The attribute type as a string.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">value</span></td>
        <td><p>The attribute value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_Clear.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.Clear%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L320">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_Clear_" data-uid="Sax.Helpers.Attributes.Clear*"></a>
  <h4 id="Sax_Helpers_Attributes_Clear" data-uid="Sax.Helpers.Attributes.Clear">Clear()</h4>
  <div class="markdown level1 summary"><p>Clear the attribute list for reuse.
<p>
Note that little memory is freed by this call:
the current array is kept so it can be 
reused.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void Clear()</code></pre>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_GetIndex_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.GetIndex(System.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L207">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_GetIndex_" data-uid="Sax.Helpers.Attributes.GetIndex*"></a>
  <h4 id="Sax_Helpers_Attributes_GetIndex_System_String_" data-uid="Sax.Helpers.Attributes.GetIndex(System.String)">GetIndex(String)</h4>
  <div class="markdown level1 summary"><p>Look up an attribute&apos;s index by qualified (prefixed) name.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual int GetIndex(string qName)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">qName</span></td>
        <td><p>The qualified name.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The attribute&apos;s index, or -1 if none matches.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_GetIndex_System_String__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_GetIndex_System_String_">GetIndex(String)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_GetIndex_System_String_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.GetIndex(System.String%2CSystem.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L187">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_GetIndex_" data-uid="Sax.Helpers.Attributes.GetIndex*"></a>
  <h4 id="Sax_Helpers_Attributes_GetIndex_System_String_System_String_" data-uid="Sax.Helpers.Attributes.GetIndex(System.String,System.String)">GetIndex(String, String)</h4>
  <div class="markdown level1 summary"><p>Look up an attribute&apos;s index by Namespace name.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual int GetIndex(string uri, string localName)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">uri</span></td>
        <td><p>The attribute&apos;s Namespace URI, or the empty
string if none is available.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">localName</span></td>
        <td><p>The attribute&apos;s local name.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>The attribute&apos;s index, or -1 if none matches.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_GetIndex_System_String_System_String__remarks">Remarks</h5>
  <div class="markdown level1 remarks"><p>In many cases, it will be more efficient to look up the name once and
use the index query methods rather than using the name query methods
repeatedly.</p>
</div>
  <h5 id="Sax_Helpers_Attributes_GetIndex_System_String_System_String__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_GetIndex_System_String_System_String_">GetIndex(String, String)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_GetLocalName_System_Int32_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.GetLocalName(System.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L104">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_GetLocalName_" data-uid="Sax.Helpers.Attributes.GetLocalName*"></a>
  <h4 id="Sax_Helpers_Attributes_GetLocalName_System_Int32_" data-uid="Sax.Helpers.Attributes.GetLocalName(System.Int32)">GetLocalName(Int32)</h4>
  <div class="markdown level1 summary"><p>Return an attribute&apos;s local name.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual string GetLocalName(int index)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The attribute&apos;s index (zero-based).</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The attribute&apos;s local name, the empty string if none is available, or null if the index if out of range.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_GetLocalName_System_Int32__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_GetLocalName_System_Int32_">GetLocalName(Int32)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_GetQName_System_Int32_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.GetQName(System.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L124">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_GetQName_" data-uid="Sax.Helpers.Attributes.GetQName*"></a>
  <h4 id="Sax_Helpers_Attributes_GetQName_System_Int32_" data-uid="Sax.Helpers.Attributes.GetQName(System.Int32)">GetQName(Int32)</h4>
  <div class="markdown level1 summary"><p>Return an attribute&apos;s qualified (prefixed) name.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual string GetQName(int index)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The attribute&apos;s index (zero-based).</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The attribute&apos;s qualified name, the empty string if
none is available, or null if the index is out of bounds.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_GetQName_System_Int32__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_GetQName_System_Int32_">GetQName(Int32)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_GetType_System_Int32_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.GetType(System.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L144">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_GetType_" data-uid="Sax.Helpers.Attributes.GetType*"></a>
  <h4 id="Sax_Helpers_Attributes_GetType_System_Int32_" data-uid="Sax.Helpers.Attributes.GetType(System.Int32)">GetType(Int32)</h4>
  <div class="markdown level1 summary"><p>Return an attribute&apos;s type by index.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual string GetType(int index)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The attribute&apos;s index (zero-based).</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The attribute&apos;s type, &quot;CDATA&quot; if the type is unknown, or null
if the index is out of bounds.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_GetType_System_Int32__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_GetType_System_Int32_">GetType(Int32)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_GetType_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.GetType(System.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L250">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_GetType_" data-uid="Sax.Helpers.Attributes.GetType*"></a>
  <h4 id="Sax_Helpers_Attributes_GetType_System_String_" data-uid="Sax.Helpers.Attributes.GetType(System.String)">GetType(String)</h4>
  <div class="markdown level1 summary"><p>Look up an attribute&apos;s type by qualified (prefixed) name.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual string GetType(string qName)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">qName</span></td>
        <td><p>The qualified name.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The attribute&apos;s type, or null if there is no
matching attribute.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_GetType_System_String__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_GetType_System_String_">GetType(String)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_GetType_System_String_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.GetType(System.String%2CSystem.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L229">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_GetType_" data-uid="Sax.Helpers.Attributes.GetType*"></a>
  <h4 id="Sax_Helpers_Attributes_GetType_System_String_System_String_" data-uid="Sax.Helpers.Attributes.GetType(System.String,System.String)">GetType(String, String)</h4>
  <div class="markdown level1 summary"><p>Look up an attribute&apos;s type by Namespace-qualified name.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual string GetType(string uri, string localName)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">uri</span></td>
        <td><p>The Namespace URI, or the empty string for a name
with no explicit Namespace URI.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">localName</span></td>
        <td><p>The local name.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The attribute&apos;s type, or null if there is no matching attribute.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_GetType_System_String_System_String__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_GetType_System_String_System_String_">GetType(String, String)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_GetURI_System_Int32_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.GetURI(System.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L85">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_GetURI_" data-uid="Sax.Helpers.Attributes.GetURI*"></a>
  <h4 id="Sax_Helpers_Attributes_GetURI_System_Int32_" data-uid="Sax.Helpers.Attributes.GetURI(System.Int32)">GetURI(Int32)</h4>
  <div class="markdown level1 summary"><p>Return an attribute&apos;s Namespace URI.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual string GetURI(int index)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The attribute&apos;s index (zero-based).</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The Namespace URI, the empty string if none is
available, or null if the index is out of range.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_GetURI_System_Int32__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_GetURI_System_Int32_">GetURI(Int32)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_GetValue_System_Int32_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.GetValue(System.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L163">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_GetValue_" data-uid="Sax.Helpers.Attributes.GetValue*"></a>
  <h4 id="Sax_Helpers_Attributes_GetValue_System_Int32_" data-uid="Sax.Helpers.Attributes.GetValue(System.Int32)">GetValue(Int32)</h4>
  <div class="markdown level1 summary"><p>Return an attribute&apos;s value by index.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual string GetValue(int index)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The attribute&apos;s index (zero-based).</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The attribute&apos;s value or null if the index is out of bounds.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_GetValue_System_Int32__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_GetValue_System_Int32_">GetValue(Int32)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_GetValue_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.GetValue(System.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L293">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_GetValue_" data-uid="Sax.Helpers.Attributes.GetValue*"></a>
  <h4 id="Sax_Helpers_Attributes_GetValue_System_String_" data-uid="Sax.Helpers.Attributes.GetValue(System.String)">GetValue(String)</h4>
  <div class="markdown level1 summary"><p>Look up an attribute&apos;s value by qualified (prefixed) name.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual string GetValue(string qName)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">qName</span></td>
        <td><p>The qualified name.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The attribute&apos;s value, or null if there is no
matching attribute.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_GetValue_System_String__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_GetValue_System_String_">GetValue(String)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_GetValue_System_String_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.GetValue(System.String%2CSystem.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L272">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_GetValue_" data-uid="Sax.Helpers.Attributes.GetValue*"></a>
  <h4 id="Sax_Helpers_Attributes_GetValue_System_String_System_String_" data-uid="Sax.Helpers.Attributes.GetValue(System.String,System.String)">GetValue(String, String)</h4>
  <div class="markdown level1 summary"><p>Look up an attribute&apos;s value by Namespace-qualified name.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual string GetValue(string uri, string localName)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">uri</span></td>
        <td><p>The Namespace URI, or the empty string for a name
with no explicit Namespace URI.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">localName</span></td>
        <td><p>The local name.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><p>The attribute&apos;s value, or null if there is no matching attribute.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 id="Sax_Helpers_Attributes_GetValue_System_String_System_String__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Sax.Helpers.Attributes.html#Sax_Helpers_Attributes_GetValue_System_String_System_String_">GetValue(String, String)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_RemoveAttribute_System_Int32_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.RemoveAttribute(System.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L426">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_RemoveAttribute_" data-uid="Sax.Helpers.Attributes.RemoveAttribute*"></a>
  <h4 id="Sax_Helpers_Attributes_RemoveAttribute_System_Int32_" data-uid="Sax.Helpers.Attributes.RemoveAttribute(System.Int32)">RemoveAttribute(Int32)</h4>
  <div class="markdown level1 summary"><p>Remove an attribute from the list.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void RemoveAttribute(int index)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The index of the attribute (zero-based).</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IndexOutOfRangeException</span></td>
        <td><p>When the supplied index does not point to an attribute in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_SetAttribute_System_Int32_System_String_System_String_System_String_System_String_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.SetAttribute(System.Int32%2CSystem.String%2CSystem.String%2CSystem.String%2CSystem.String%2CSystem.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L404">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_SetAttribute_" data-uid="Sax.Helpers.Attributes.SetAttribute*"></a>
  <h4 id="Sax_Helpers_Attributes_SetAttribute_System_Int32_System_String_System_String_System_String_System_String_System_String_" data-uid="Sax.Helpers.Attributes.SetAttribute(System.Int32,System.String,System.String,System.String,System.String,System.String)">SetAttribute(Int32, String, String, String, String, String)</h4>
  <div class="markdown level1 summary"><p>Set an attribute in the list.</p>
<p><p>For the sake of speed, this method does no checking
for name conflicts or well-formedness: such checks are the
responsibility of the application.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void SetAttribute(int index, string uri, string localName, string qName, string type, string value)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The index of the attribute (zero-based).</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">uri</span></td>
        <td><p>The Namespace URI, or the empty string if
none is available or Namespace processing is not
being performed.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">localName</span></td>
        <td><p>The local name, or the empty string if
Namespace processing is not being performed.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">qName</span></td>
        <td><p>The qualified name, or the empty string
if qualified names are not available.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">type</span></td>
        <td><p>The attribute type as a string.</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">value</span></td>
        <td><p>The attribute value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IndexOutOfRangeException</span></td>
        <td><p>When the
supplied index does not point to an attribute
in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_SetAttributes_Sax_IAttributes_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.SetAttributes(Sax.IAttributes)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L337">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_SetAttributes_" data-uid="Sax.Helpers.Attributes.SetAttributes*"></a>
  <h4 id="Sax_Helpers_Attributes_SetAttributes_Sax_IAttributes_" data-uid="Sax.Helpers.Attributes.SetAttributes(Sax.IAttributes)">SetAttributes(IAttributes)</h4>
  <div class="markdown level1 summary"><p>Copy an entire Attributes object.
<p>
It may be more efficient to reuse an existing object
rather than constantly allocating new ones.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void SetAttributes(IAttributes atts)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Sax.IAttributes.html">IAttributes</a></td>
        <td><span class="parametername">atts</span></td>
        <td><p>The attributes to copy.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_SetLocalName_System_Int32_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.SetLocalName(System.Int32%2CSystem.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L479">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_SetLocalName_" data-uid="Sax.Helpers.Attributes.SetLocalName*"></a>
  <h4 id="Sax_Helpers_Attributes_SetLocalName_System_Int32_System_String_" data-uid="Sax.Helpers.Attributes.SetLocalName(System.Int32,System.String)">SetLocalName(Int32, String)</h4>
  <div class="markdown level1 summary"><p>Set the local name of a specific attribute.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void SetLocalName(int index, string localName)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The index of the attribute (zero-based).</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">localName</span></td>
        <td><p>The attribute&apos;s local name, or the empty
string for none.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IndexOutOfRangeException</span></td>
        <td><p>When the
supplied index does not point to an attribute
in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_SetQName_System_Int32_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.SetQName(System.Int32%2CSystem.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L500">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_SetQName_" data-uid="Sax.Helpers.Attributes.SetQName*"></a>
  <h4 id="Sax_Helpers_Attributes_SetQName_System_Int32_System_String_" data-uid="Sax.Helpers.Attributes.SetQName(System.Int32,System.String)">SetQName(Int32, String)</h4>
  <div class="markdown level1 summary"><p>Set the qualified name of a specific attribute.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void SetQName(int index, string qName)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The index of the attribute (zero-based).</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">qName</span></td>
        <td><p>The attribute&apos;s qualified name, or the empty
string for none.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IndexOutOfRangeException</span></td>
        <td><p>When the
supplied index does not point to an attribute
in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_SetType_System_Int32_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.SetType(System.Int32%2CSystem.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L520">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_SetType_" data-uid="Sax.Helpers.Attributes.SetType*"></a>
  <h4 id="Sax_Helpers_Attributes_SetType_System_Int32_System_String_" data-uid="Sax.Helpers.Attributes.SetType(System.Int32,System.String)">SetType(Int32, String)</h4>
  <div class="markdown level1 summary"><p>Set the type of a specific attribute.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void SetType(int index, string type)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The index of the attribute (zero-based).</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">type</span></td>
        <td><p>The attribute&apos;s type.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IndexOutOfRangeException</span></td>
        <td><p>When the
supplied index does not point to an attribute
in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_SetURI_System_Int32_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.SetURI(System.Int32%2CSystem.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L458">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_SetURI_" data-uid="Sax.Helpers.Attributes.SetURI*"></a>
  <h4 id="Sax_Helpers_Attributes_SetURI_System_Int32_System_String_" data-uid="Sax.Helpers.Attributes.SetURI(System.Int32,System.String)">SetURI(Int32, String)</h4>
  <div class="markdown level1 summary"><p>Set the Namespace URI of a specific attribute.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void SetURI(int index, string uri)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The index of the attribute (zero-based).</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">uri</span></td>
        <td><p>The attribute&apos;s Namespace URI, or the empty
string for none.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IndexOutOfRangeException</span></td>
        <td><p>When the
supplied index does not point to an attribute
in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes_SetValue_System_Int32_System_String_.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes.SetValue(System.Int32%2CSystem.String)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L540">View Source</a>
  </span>
  <a id="Sax_Helpers_Attributes_SetValue_" data-uid="Sax.Helpers.Attributes.SetValue*"></a>
  <h4 id="Sax_Helpers_Attributes_SetValue_System_Int32_System_String_" data-uid="Sax.Helpers.Attributes.SetValue(System.Int32,System.String)">SetValue(Int32, String)</h4>
  <div class="markdown level1 summary"><p>Set the value of a specific attribute.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void SetValue(int index, string value)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">index</span></td>
        <td><p>The index of the attribute (zero-based).</p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">value</span></td>
        <td><p>The attribute&apos;s value.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IndexOutOfRangeException</span></td>
        <td><p>When the
supplied index does not point to an attribute
in the list.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="implements">Implements</h3>
  <div>
      <a class="xref" href="Sax.IAttributes.html">IAttributes</a>
  </div>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <div class="contribution">
                <ul class="nav">
                  <li>
                    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Sax_Helpers_Attributes.md&amp;value=---%0Auid%3A%20Sax.Helpers.Attributes%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
                  </li>
                  <li>
                    <a href="https://github.com/apache/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Benchmark/Support/Sax/Helpers/AttributesImpl.cs/#L40" class="contribution-link">View Source</a>
                  </li>
                </ul>
              </div>
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            Copyright © 2020 The Apache Software Foundation, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache License, Version 2.0</a><br> <small>Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</small>
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.js"></script>
    <script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.js"></script>
  </body>
</html>
