İngilizce dilinde oku

Aracılığıyla paylaş


IList Arabirim

Tanım

Dizin tarafından tek tek erişilebilen genel olmayan bir nesne koleksiyonunu temsil eder.

C#
public interface IList : System.Collections.ICollection
C#
[System.Runtime.InteropServices.ComVisible(true)]
public interface IList : System.Collections.ICollection
Türetilmiş
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnekte basit, sabit boyutlu bir liste oluşturmak için IList arabiriminin uygulanması gösterilmektedir.

C#
using System;
using System.Collections;

class Program
{
    static void Main()
    {
        var 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\": {test.Contains("three")}");
        Console.WriteLine($"List contains \"ten\": {test.Contains("ten")}");
    }
}

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);
        }

        return -1;
    }

    public void Clear()
    {
        _count = 0;
    }

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

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

    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)
    {
        for (int i = 0; i < Count; i++)
        {
            array.SetValue(_contents[i], index++);
        }
    }

    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 NotImplementedException("The method or operation is not implemented.");
    }

    public void PrintContents()
    {
        Console.WriteLine($"List has a capacity of {_contents.Length} and currently has {_count} elements.");
        Console.Write("List contents:");
        for (int i = 0; i < Count; i++)
        {
            Console.Write($" {_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

Açıklamalar

IList, ICollection arabiriminin alt öğelerinden biridir ve genel olmayan tüm listelerin temel arabirimidir. IList uygulamaları üç kategoriye ayrılır: salt okunur, sabit boyutlu ve değişken boyutlu. Salt okunur IList değiştirilemez. Sabit boyutlu IList öğelerin eklenmesine veya kaldırılmasına izin vermez, ancak mevcut öğelerin değiştirilmesine izin verir. Değişken boyutlu IList öğelerin eklenmesine, kaldırılmasına ve değiştirilmesine olanak tanır.

Bu arabirimin genel sürümü için bkz. System.Collections.Generic.IList<T>.

Özellikler

Count

ICollectioniçindeki öğe sayısını alır.

(Devralındığı yer: ICollection)
IsFixedSize

IList sabit bir boyuta sahip olup olmadığını gösteren bir değer alır.

IsReadOnly

IList salt okunur olup olmadığını gösteren bir değer alır.

IsSynchronized

ICollection erişimin eşitlenip eşitlenmediğini belirten bir değer alır (iş parçacığı güvenli).

(Devralındığı yer: ICollection)
Item[Int32]

Belirtilen dizinde öğesini alır veya ayarlar.

SyncRoot

ICollectionerişimini eşitlemek için kullanılabilecek bir nesnesi alır.

(Devralındığı yer: ICollection)

Yöntemler

Add(Object)

IListbir öğe ekler.

Clear()

IListtüm öğeleri kaldırır.

Contains(Object)

IList belirli bir değer içerip içermediğini belirler.

CopyTo(Array, Int32)

ICollection öğelerini belirli bir Array dizininden başlayarak bir Arraykopyalar.

(Devralındığı yer: ICollection)
GetEnumerator()

Bir koleksiyonda yineleyen bir numaralandırıcı döndürür.

(Devralındığı yer: IEnumerable)
IndexOf(Object)

IListbelirli bir öğenin dizinini belirler.

Insert(Int32, Object)

Belirtilen dizinde IList bir öğe ekler.

Remove(Object)

belirli bir nesnenin ilk oluşumunu IListkaldırır.

RemoveAt(Int32)

Belirtilen dizindeki IList öğesini kaldırır.

Uzantı Metotları

Cast<TResult>(IEnumerable)

Bir IEnumerable öğelerini belirtilen türe yayınlar.

OfType<TResult>(IEnumerable)

Bir IEnumerable öğelerini belirtilen türe göre filtreler.

AsParallel(IEnumerable)

Sorgunun paralelleştirilmesini etkinleştirir.

AsQueryable(IEnumerable)

bir IEnumerableIQueryabledönüştürür.

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Ayrıca bkz.