Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Interfaz IList

 

Publicado: octubre de 2016

Representa una colección no genérica de objetos a los que se puede acceder individualmente por un índice.

Espacio de nombres:   System.Collections
Ensamblado:  mscorlib (en mscorlib.dll)

[ComVisibleAttribute(true)]
public interface IList : ICollection, IEnumerable

NombreDescripción
System_CAPS_pubpropertyCount

Obtiene el número de elementos incluidos en ICollection.(Heredado de ICollection).

System_CAPS_pubpropertyIsFixedSize

Obtiene un valor que indica si la interfaz IList tiene un tamaño fijo.

System_CAPS_pubpropertyIsReadOnly

Obtiene un valor que indica si IList es de solo lectura.

System_CAPS_pubpropertyIsSynchronized

Obtiene un valor que indica si el acceso a la interfaz ICollection está sincronizado (es seguro para subprocesos).(Heredado de ICollection).

System_CAPS_pubpropertyItem[Int32]

Obtiene o establece el elemento en el índice especificado.

System_CAPS_pubpropertySyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a ICollection.(Heredado de ICollection).

NombreDescripción
System_CAPS_pubmethodAdd(Object)

Agrega un elemento a IList.

System_CAPS_pubmethodClear()

Quita todos los elementos de IList.

System_CAPS_pubmethodContains(Object)

Determina si IList contiene un valor específico.

System_CAPS_pubmethodCopyTo(Array, Int32)

Copia los elementos de ICollection en Array, empezando por un índice determinado de Array.(Heredado de ICollection).

System_CAPS_pubmethodGetEnumerator()

Devuelve un enumerador que recorre en iteración una colección.(Heredado de IEnumerable).

System_CAPS_pubmethodIndexOf(Object)

Determina el índice de un elemento específico de IList.

System_CAPS_pubmethodInsert(Int32, Object)

Inserta un elemento en la interfaz IList, en el índice especificado.

System_CAPS_pubmethodRemove(Object)

Quita la primera aparición de un objeto específico de la interfaz IList.

System_CAPS_pubmethodRemoveAt(Int32)

Quita el elemento de la interfaz IList que se encuentra en el índice especificado.

NombreDescripción
System_CAPS_pubmethodAsParallel()

Sobrecargado. Habilita la paralelización de una consulta.(Definido por ParallelEnumerable).

System_CAPS_pubmethodAsQueryable()

Sobrecargado. Convierte un IEnumerable para un IQueryable.(Definido por Queryable).

System_CAPS_pubmethodCast<TResult>()

Convierte los elementos de un IEnumerable al tipo especificado.(Definido por Enumerable).

System_CAPS_pubmethodOfType<TResult>()

Filtra los elementos de un IEnumerable basado en un tipo especificado.(Definido por Enumerable).

IList es un descendiente de la ICollection interfaz y es la interfaz base de todas las listas no genéricas. IList las implementaciones se dividen en tres categorías: sólo lectura, tamaño fijo y tamaño variable. Sólo lectura IList no se puede modificar. Un tamaño fijo IList no permite la adición o eliminación de elementos, pero sí permite modificar los elementos existentes. Un tamaño variable IList permite agregar, quitar y modificar elementos.

Para obtener la versión genérica de esta interfaz, vea System.Collections.Generic.IList<T>.

En el ejemplo siguiente se muestra la implementación de la IList interfaz para crear una lista simple, lista de tamaño fijo.

using System;
using System.Collections;

class Program
{
    static void Main()
    {
        SimpleList test = new SimpleList();

        // Populate the List
        Console.WriteLine("Populate the List");
        test.Add("one");
        test.Add("two");
        test.Add("three");
        test.Add("four");
        test.Add("five");
        test.Add("six");
        test.Add("seven");
        test.Add("eight");
        test.PrintContents();
        Console.WriteLine();

        // Remove elements from the list
        Console.WriteLine("Remove elements from the list");
        test.Remove("six");
        test.Remove("eight");
        test.PrintContents();
        Console.WriteLine();

        // Add an element to the end of the list
        Console.WriteLine("Add an element to the end of the list");
        test.Add("nine");
        test.PrintContents();
        Console.WriteLine();

        // Insert an element into the middle of the list
        Console.WriteLine("Insert an element into the middle of the list");
        test.Insert(4, "number");
        test.PrintContents();
        Console.WriteLine();

        // Check for specific elements in the list
        Console.WriteLine("Check for specific elements in the list");
        Console.WriteLine("List contains \"three\": {0}", test.Contains("three"));
        Console.WriteLine("List contains \"ten\": {0}", test.Contains("ten"));
    }
} // class Program

class SimpleList : IList
{
    private object[] _contents = new object[8];
    private int _count;

    public SimpleList()
    {
        _count = 0;
    }

    // IList Members
    public int Add(object value)
    {
        if (_count < _contents.Length)
        {
            _contents[_count] = value;
            _count++;

            return (_count - 1);
        }
        else
        {
            return -1;
        }
    }

    public void Clear()
    {
        _count = 0;
    }

    public bool Contains(object value)
    {
        bool inList = false;
        for (int i = 0; i < Count; i++)
        {
            if (_contents[i] == value)
            {
                inList = true;
                break;
            }
        }
        return inList;
    }

    public int IndexOf(object value)
    {
        int itemIndex = -1;
        for (int i = 0; i < Count; i++)
        {
            if (_contents[i] == value)
            {
                itemIndex = i;
                break;
            }
        }
        return itemIndex;
    }

    public void Insert(int index, object value)
    {
        if ((_count + 1 <= _contents.Length) && (index < Count) && (index >= 0))
        {
            _count++;

            for (int i = Count - 1; i > index; i--)
            {
                _contents[i] = _contents[i - 1];
            }
            _contents[index] = value;
        }
    }

    public bool IsFixedSize
    {
        get
        {
            return true;
        }
    }

    public bool IsReadOnly
    {
        get
        {
            return false;
        }
    }

    public void Remove(object value)
    {
        RemoveAt(IndexOf(value));
    }

    public void RemoveAt(int index)
    {
        if ((index >= 0) && (index < Count))
        {
            for (int i = index; i < Count - 1; i++)
            {
                _contents[i] = _contents[i + 1];
            }
            _count--;
        }
    }

    public object this[int index]
    {
        get
        {
            return _contents[index];
        }
        set
        {
            _contents[index] = value;
        }
    }

    // ICollection Members

    public void CopyTo(Array array, int index)
    {
        int j = index;
        for (int i = 0; i < Count; i++)
        {
            array.SetValue(_contents[i], j);
            j++;
        }
    }

    public int Count
    {
        get
        {
            return _count;
        }
    }

    public bool IsSynchronized
    {
        get
        {
            return false;
        }
    }

    // Return the current instance since the underlying store is not
    // publicly available.
    public object SyncRoot
    {
        get
        {
            return this;
        }
    }

    // IEnumerable Members

    public IEnumerator GetEnumerator()
    {
        // Refer to the IEnumerator documentation for an example of
        // implementing an enumerator.
        throw new Exception("The method or operation is not implemented.");
    }

    public void PrintContents()
    {
        Console.WriteLine("List has a capacity of {0} and currently has {1} elements.", _contents.Length, _count);
        Console.Write("List contents:");
        for (int i = 0; i < Count; i++)
        {
            Console.Write(" {0}", _contents[i]);
        }
        Console.WriteLine();
    }
}

// This code produces output similar to the following:
// Populate the List:
// List has a capacity of 8 and currently has 8 elements.
// List contents: one two three four five six seven eight
//
// Remove elements from the list:
// List has a capacity of 8 and currently has 6 elements.
// List contents: one two three four five seven
//
// Add an element to the end of the list:
// List has a capacity of 8 and currently has 7 elements.
// List contents: one two three four five seven nine
//
// Insert an element into the middle of the list:
// List has a capacity of 8 and currently has 8 elements.
// List contents: one two three four number five seven nine
//
// Check for specific elements in the list:
// List contains "three": True
// List contains "ten": False

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: