<html dir="LTR">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1252" />
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5" />
    <title>LevelCollection.ILevelCollectionEnumerator.MoveNext Method</title>
    <xml>
    </xml>
    <link rel="stylesheet" type="text/css" href="MSDN.css" />
  </head>
  <body id="bodyID" class="dtBODY">
    <div id="nsbanner">
      <div id="bannerrow1">
        <table class="bannerparthead" cellspacing="0">
          <tr id="hdr">
            <td class="runninghead">Apache log4net� SDK Documentation - Microsoft .NET Framework 4.0</td>
            <td class="product">
            </td>
          </tr>
        </table>
      </div>
      <div id="TitleRow">
        <h1 class="dtH1">LevelCollection.ILevelCollectionEnumerator.MoveNext�Method�</h1>
      </div>
    </div>
    <div id="nstext">
      <p> Advances the enumerator to the next element in the collection. </p>
      <div class="syntax">
        <span class="lang">[Visual�Basic]</span>
        <br />Function�MoveNext()�As�<a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemBooleanClassTopic.htm">Boolean</a></div>
      <div class="syntax">
        <span class="lang">[C#]</span>
        <br />
        <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemBooleanClassTopic.htm">bool</a>�MoveNext();</div>
      <h4 class="dtH4">Return Value</h4>
      <p>
            <code>true</code> if the enumerator was successfully advanced to the next element; <code>false</code> if the enumerator has passed the end of the collection. </p>
      <h4 class="dtH4">Exceptions</h4>
      <div class="tablediv">
        <table class="dtTABLE" cellspacing="0">
          <tr valign="top">
            <th width="50%">Exception Type</th>
            <th width="50%">Condition</th>
          </tr>
          <tr valign="top">
            <td width="50%">
              <a href="ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfSystemInvalidOperationExceptionClassTopic.htm">InvalidOperationException</a>
            </td>
            <td width="50%"> The collection was modified after the enumerator was created. </td>
          </tr>
        </table>
      </div>
      <h4 class="dtH4">See Also</h4>
      <p>
        <a href="log4net.Core.LevelCollection.ILevelCollectionEnumerator.html">LevelCollection.ILevelCollectionEnumerator Interface</a> | <a href="log4net.Core.html">log4net.Core Namespace</a></p>
      <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e" viewastext="true" style="display: none;">
        <param name="Keyword" value="MoveNext method">
        </param>
        <param name="Keyword" value="MoveNext method, LevelCollection.ILevelCollectionEnumerator interface">
        </param>
        <param name="Keyword" value="LevelCollection.ILevelCollectionEnumerator.MoveNext method">
        </param>
      </object>
      <hr />
      <div id="footer"><a href='http://logging.apache.org/log4net/'>Copyright 2004-2013 The Apache Software Foundation.</a><br></br>Apache log4net, Apache and log4net are trademarks of The Apache Software Foundation.</div>
    </div>
  </body>
</html>
