Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Interfaccia IList

 

Data di pubblicazione: ottobre 2016

Rappresenta una raccolta non generica di oggetti a cui è possibile accedere singolarmente tramite indice.

Spazio dei nomi:   System.Collections
Assembly:  mscorlib (in mscorlib.dll)

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

NomeDescrizione
System_CAPS_pubpropertyCount

Ottiene il numero di elementi contenuti in ICollection.(Ereditato da ICollection.)

System_CAPS_pubpropertyIsFixedSize

Ottiene un valore che indica se IList ha dimensioni fisse.

System_CAPS_pubpropertyIsReadOnly

Ottiene un valore che indica se IList è di sola lettura.

System_CAPS_pubpropertyIsSynchronized

Ottiene un valore che indica se l'accesso a ICollection è sincronizzato (thread-safe).(Ereditato da ICollection.)

System_CAPS_pubpropertyItem[Int32]

Ottiene o imposta l'elemento in corrispondenza dell'indice specificato.

System_CAPS_pubpropertySyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso a ICollection.(Ereditato da ICollection.)

NomeDescrizione
System_CAPS_pubmethodAdd(Object)

Aggiunge un elemento a IList.

System_CAPS_pubmethodClear()

Rimuove tutti gli elementi da IList.

System_CAPS_pubmethodContains(Object)

Stabilisce se IList contiene un valore specifico.

System_CAPS_pubmethodCopyTo(Array, Int32)

Copia gli elementi di ICollection in Array a partire da un particolare indice Array.(Ereditato da ICollection.)

System_CAPS_pubmethodGetEnumerator()

Restituisce un enumeratore che consente di eseguire l'iterazione di una raccolta.(Ereditato da IEnumerable.)

System_CAPS_pubmethodIndexOf(Object)

Determina l'indice di un elemento specifico in IList.

System_CAPS_pubmethodInsert(Int32, Object)

Inserisce un elemento in IList in corrispondenza dell'indice specificato.

System_CAPS_pubmethodRemove(Object)

Rimuove la prima occorrenza di un oggetto specifico da IList.

System_CAPS_pubmethodRemoveAt(Int32)

Rimuove l'elemento IList in corrispondenza dell'indice specificato.

NomeDescrizione
System_CAPS_pubmethodAsParallel()

Sottoposto a overload. Consente la parallelizzazione di una query.(Definito da ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Sottoposto a overload. Converte un IEnumerable a un IQueryable.(Definito da Queryable.)

System_CAPS_pubmethodCast<TResult>()

Esegue il cast di elementi di un IEnumerable nel tipo specificato.(Definito da Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filtra gli elementi di un IEnumerable in base a un tipo specificato.(Definito da Enumerable.)

IList è un discendente del ICollection interfaccia ed è l'interfaccia di base di tutti gli elenchi non generici. IList le implementazioni sono suddivise in tre categorie: sola lettura, a dimensione fissa e variabile. Sola lettura IList non può essere modificato. Una dimensione fissa IList non consente l'aggiunta o rimozione di elementi, ma consente la modifica degli elementi esistenti. Una variabile IList consente l'aggiunta, rimozione e la modifica degli elementi.

Per la versione generica di questa interfaccia, vedere System.Collections.Generic.IList<T>.

Nell'esempio seguente viene illustrata l'implementazione del IList interfaccia per creare un elenco semplice, un elenco di dimensioni fisse.

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

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: