<Type Name="ListBase" FullName="GLib.ListBase">
  <TypeSignature Language="C#" Maintainer="auto" Value="public abstract class ListBase : GLib.IWrapper, ICloneable, IDisposable, System.Collections.ICollection" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract beforefieldinit ListBase extends System.Object implements class GLib.IWrapper, class System.Collections.ICollection, class System.Collections.IEnumerable, class System.ICloneable, class System.IDisposable" />
  <AssemblyInfo>
    <AssemblyName>glib-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>GLib.IWrapper</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>System.Collections.ICollection</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>System.ICloneable</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>System.IDisposable</InterfaceName>
    </Interface>
  </Interfaces>
  <Docs>
    <summary>Base class for GList and GSList.</summary>
    <remarks>
    </remarks>
  </Docs>
  <Members>
    <Member MemberName="Append">
      <MemberSignature Language="C#" Value="public void Append (IntPtr raw);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Append(native int raw) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="raw">an object of type <see cref="T:System.IntPtr" /></param>
        <summary>Appends an element to the end of the list.</summary>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Append">
      <MemberSignature Language="C#" Value="public void Append (object item);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Append(object item) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="item" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="item">An item to be appended to the list.</param>
        <summary>Appends an item to the List.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Append">
      <MemberSignature Language="C#" Value="public void Append (string item);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Append(string item) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="item" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="item">an object of type <see cref="T:System.String" /></param>
        <summary>Appends an element to the end of the list.</summary>
        <remarks>This is a convenience overload to append a <see cref="T:System.String" /> to the end of a list.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Clone">
      <MemberSignature Language="C#" Value="public abstract object Clone ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance object Clone() cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Clones the list.</summary>
        <returns>a copy of the list as an  <see cref="T:System.Object" />.</returns>
        <remarks>Produces a copy of the list.</remarks>
      </Docs>
    </Member>
    <Member MemberName="CopyTo">
      <MemberSignature Language="C#" Value="public void CopyTo (Array array, int index);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void CopyTo(class System.Array array, int32 index) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="array" Type="System.Array" />
        <Parameter Name="index" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="array">an <see cref="T:System.Array" /> to copy to.</param>
        <param name="index">the index to start copying at in <paramref name="array" />.</param>
        <summary>Copies the list to a typed array.</summary>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Count">
      <MemberSignature Language="C#" Value="public int Count { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance int32 Count" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The number of elements in the list.</summary>
        <value>the number of elements in the list as an <see cref="T:System.Int32" /></value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Dispose">
      <MemberSignature Language="C#" Value="public void Dispose ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Dispose() cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Disposes the list.</summary>
        <remarks>If <see cref="M:GLib.ListBase.Managed" /> is set, this frees the native list.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Dispose">
      <MemberSignature Language="C#" Value="protected virtual void Dispose (bool disposing);" />
      <MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void Dispose(bool disposing) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="disposing" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="disposing">a <see cref="T:System.Boolean" /></param>
        <summary>Disposes the list.</summary>
        <remarks>If the <see cref="M:GLib.ListBase.Managed" /> property is set, the underlying native list is freed.</remarks>
      </Docs>
    </Member>
    <Member MemberName="element_type">
      <MemberSignature Language="C#" Value="protected Type element_type;" />
      <MemberSignature Language="ILAsm" Value=".field family class System.Type element_type" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Type</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>The <see cref="T:System.Type" /> of the elements of the list.</summary>
        <remarks>
          <see cref="T:GLib.Object" /> subclasses are handled automatically, so it is not necessary to set this field for lists of <see cref="T:GLib.Object" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Empty">
      <MemberSignature Language="C#" Value="public void Empty ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Empty() cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Empties the list.</summary>
        <remarks>Empties, and frees the list, as well as all of its children</remarks>
        <since version="Gtk# 2.4" />
      </Docs>
    </Member>
    <Member MemberName="Finalize">
      <MemberSignature Language="C#" Value="~ListBase ();" />
      <MemberSignature Language="ILAsm" Value=".method familyhidebysig virtual instance void Finalize() cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Finalizer.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetEnumerator">
      <MemberSignature Language="C#" Value="public System.Collections.IEnumerator GetEnumerator ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Collections.IEnumerator GetEnumerator() cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.IEnumerator</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Gets an <see cref="T:System.Collections.IEnumerator" /> to enumerate the list elements.</summary>
        <returns>a <see cref="T:System.Collections.IEnumerator" /></returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Handle">
      <MemberSignature Language="C#" Value="public IntPtr Handle { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance native int Handle" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>A raw list reference for marshaling situations.</summary>
        <value>an object of type <see cref="T:System.IntPtr" /></value>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="IsSynchronized">
      <MemberSignature Language="C#" Value="public bool IsSynchronized { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool IsSynchronized" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Indicates if the list is synchronized.</summary>
        <value>always <see langword="false" /></value>
        <remarks>Always returns false. </remarks>
      </Docs>
    </Member>
    <Member MemberName="Item">
      <MemberSignature Language="C#" Value="public object this[int index] { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance object Item(int32)" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="index" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="index">a <see cref="T:System.Int32" /> representing the 0 indexed offset to the member.</param>
        <summary>Indexer for list members.</summary>
        <value>the list member at <paramref name="index" /> as an <see cref="T:System.Object" />.</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Managed">
      <MemberSignature Language="C#" Value="public bool Managed { set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool Managed" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete("Replaced by owned parameter on ctor.")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Indicates if the native handle is owned by the Managed list class.</summary>
        <value>an object of type <see cref="T:System.Boolean" /></value>
        <remarks>Identifies the list as one that needs to be freed.  Only set this to true if you want the object to release the associated native list when it is disposed.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Prepend">
      <MemberSignature Language="C#" Value="public void Prepend (IntPtr raw);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Prepend(native int raw) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="raw">an object of type <see cref="T:System.IntPtr" /></param>
        <summary>Prepends an element to the front of the list.</summary>
        <remarks>This is faster than <see cref="M:GLib.ListBase.Append" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SyncRoot">
      <MemberSignature Language="C#" Value="public object SyncRoot { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance object SyncRoot" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Synchronization root.</summary>
        <value>always <see langword="null" /></value>
        <remarks>Always returns <see langword="null" /> since this type is never synchronized.</remarks>
      </Docs>
    </Member>
  </Members>
</Type>
