ArrayList.Item[Int32] 속성

정의

지정한 인덱스에 있는 요소를 가져오거나 설정합니다.Gets or sets the element at the specified index.

public:
 virtual property System::Object ^ default[int] { System::Object ^ get(int index); void set(int index, System::Object ^ value); };
public virtual object this[int index] { get; set; }
member this.Item(int) : obj with get, set
Default Public Overridable Property Item(index As Integer) As Object

매개 변수

index
Int32

가져오거나 설정할 요소의 인덱스(0부터 시작)입니다.The zero-based index of the element to get or set.

속성 값

지정한 인덱스의 요소입니다.The element at the specified index.

구현

예외

index가 0보다 작은 경우index is less than zero.

또는-or- indexCount보다 크거나 같은 경우index is equal to or greater than Count.

예제

다음 코드 예제는 ArrayList 여러 항목을 추가 합니다.The following code example creates an ArrayList and adds several items. 예제에서는 사용 하 여 요소에 액세스 하는 Item[Int32] 속성 (C# 인덱서) 및 새 값을 할당 하 여 요소를 변경를 Item[Int32] 지정된 된 인덱스의 속성입니다.The example demonstrates accessing elements with the Item[Int32] property (the indexer in C#), and changing an element by assigning a new value to the Item[Int32] property for a specified index. 또한이 예제에서는는 Item[Int32] 액세스 목록의 현재 크기가 외부 요소를 추가 하거나 속성을 사용할 수 없습니다.The example also shows that the Item[Int32] property cannot be used to access or add elements outside the current size of the list.

using namespace System;
using namespace System::Collections;

public ref class Example
{
public:
    static void Main()
    {
        // Create an empty ArrayList, and add some elements.
        ArrayList^ stringList = gcnew ArrayList();

        stringList->Add("a");
        stringList->Add("abc");
        stringList->Add("abcdef");
        stringList->Add("abcdefg");

        // The Item property is an indexer, so the property name is
        // not required.
        Console::WriteLine("Element {0} is \"{1}\"", 2, stringList[2]);

        // Assigning a value to the property changes the value of
        // the indexed element.
        stringList[2] = "abcd";
        Console::WriteLine("Element {0} is \"{1}\"", 2, stringList[2]);

        // Accessing an element outside the current element count
        // causes an exception.
        Console::WriteLine("Number of elements in the list: {0}", 
            stringList->Count);
        try
        {
            Console::WriteLine("Element {0} is \"{1}\"", 
                stringList->Count, stringList[stringList->Count]);
        }
        catch (ArgumentOutOfRangeException^ aoore)
        {
            Console::WriteLine("stringList({0}) is out of range.", 
                stringList->Count);
        }

        // You cannot use the Item property to add new elements.
        try
        {
            stringList[stringList->Count] = "42";
        }
        catch (ArgumentOutOfRangeException^ aoore)
        {
            Console::WriteLine("stringList({0}) is out of range.", 
                stringList->Count);
        }

        Console::WriteLine();
        for (int i = 0; i < stringList->Count; i++)
        {
            Console::WriteLine("Element {0} is \"{1}\"", i, 
                stringList[i]);
        }

        Console::WriteLine();
        for each (Object^ o in stringList)
        {
            Console::WriteLine(o);
        }
    }
};

int main()
{
   Example::Main();
}
/*
 This code example produces the following output:

Element 2 is "abcdef"
Element 2 is "abcd"
Number of elements in the list: 4
stringList(4) is out of range.
stringList(4) is out of range.

Element 0 is "a"
Element 1 is "abc"
Element 2 is "abcd"
Element 3 is "abcdefg"

a
abc
abcd
abcdefg
 */
using System;
using System.Collections;

public class Example
{
    public static void Main()
    {
        // Create an empty ArrayList, and add some elements.
        ArrayList stringList = new ArrayList();

        stringList.Add("a");
        stringList.Add("abc");
        stringList.Add("abcdef");
        stringList.Add("abcdefg");

        // The Item property is an indexer, so the property name is
        // not required.
        Console.WriteLine("Element {0} is \"{1}\"", 2, stringList[2]);

        // Assigning a value to the property changes the value of
        // the indexed element.
        stringList[2] = "abcd";
        Console.WriteLine("Element {0} is \"{1}\"", 2, stringList[2]);

        // Accessing an element outside the current element count
        // causes an exception. 
        Console.WriteLine("Number of elements in the list: {0}", 
            stringList.Count);
        try
        {
            Console.WriteLine("Element {0} is \"{1}\"", 
                stringList.Count, stringList[stringList.Count]);
        }
        catch(ArgumentOutOfRangeException aoore)
        {
            Console.WriteLine("stringList({0}) is out of range.", 
                stringList.Count);
        }

        // You cannot use the Item property to add new elements.
        try
        {
            stringList[stringList.Count] = "42";
        }
        catch(ArgumentOutOfRangeException aoore)
        {
            Console.WriteLine("stringList({0}) is out of range.", 
                stringList.Count);
        }

        Console.WriteLine();
        for (int i = 0; i < stringList.Count; i++)
        {
            Console.WriteLine("Element {0} is \"{1}\"", i, 
                stringList[i]);
        }

        Console.WriteLine();
        foreach (object o in stringList)
        {
            Console.WriteLine(o);
        }
    }
}
/*
 This code example produces the following output:

Element 2 is "abcdef"
Element 2 is "abcd"
Number of elements in the list: 4
stringList(4) is out of range.
stringList(4) is out of range.

Element 0 is "a"
Element 1 is "abc"
Element 2 is "abcd"
Element 3 is "abcdefg"

a
abc
abcd
abcdefg
 */
Imports System.Collections

Public Class Example

    Public Shared Sub Main

        ' Create an empty ArrayList, and add some elements.
        Dim stringList As New ArrayList

        stringList.Add("a")
        stringList.Add("abc")
        stringList.Add("abcdef")
        stringList.Add("abcdefg")

        ' Item is the default property, so the property name is
        ' not required.
        Console.WriteLine("Element {0} is ""{1}""", 2, stringList(2))

        ' Assigning a value to the property changes the value of
        ' the indexed element.
        stringList(2) = "abcd"
        Console.WriteLine("Element {0} is ""{1}""", 2, stringList(2))

        ' Accessing an element outside the current element count
        ' causes an exception. The ArrayList index is zero-based,
        ' so the index of the last element is (Count - 1). 
        Console.WriteLine("Number of elements in the list: {0}", _
            stringList.Count)
        Try
            Console.WriteLine("Element {0} is ""{1}""", _
                stringList.Count, _
                stringList(stringList.Count))
        Catch aoore As ArgumentOutOfRangeException
            Console.WriteLine("stringList({0}) is out of range.", _
                stringList.Count)
        End Try

        ' You cannot use the Item property to add new elements.
        Try
            stringList(stringList.Count) = "42"
        Catch aoore As ArgumentOutOfRangeException
            Console.WriteLine("stringList({0}) is out of range.", _
                stringList.Count)
        End Try

        Console.WriteLine()
        For i As Integer = 0 To stringList.Count - 1
            Console.WriteLine("Element {0} is ""{1}""", i, stringList(i))
        Next

        Console.WriteLine()
        For Each o As Object In stringList
            Console.WriteLine(o)
        Next

    End Sub

End Class
'
' This code example produces the following output:
'
'Element 2 is "abcdef"
'Element 2 is "abcd"
'Number of elements in the list: 4
'stringList(4) is out of range.
'stringList(4) is out of range.
'
'Element 0 is "a"
'Element 1 is "abc"
'Element 2 is "abcd"
'Element 3 is "abcdefg"
'
'a
'abc
'abcd
'abcdefg

다음 예제에서는 Item[Int32] 속성 값 목록에서 항목을 할당을 명시적으로 합니다.The following example uses the Item[Int32] property explicitly to assign values to items in the list. 이 예제에서는 상속 된 클래스 정의 ArrayList 목록 항목을 암호화 하는 메서드를 추가 합니다.The example defines a class that inherits an ArrayList and adds a method to scramble the list items.

using namespace System;
using namespace System::Collections;

public ref class ScrambleList : public ArrayList
{
public:
    static void Main()
    {
        // Create an empty ArrayList, and add some elements.
        ScrambleList^ integerList = gcnew ScrambleList();

        for (int i = 0; i < 10; i++)
        {
            integerList->Add(i);
        }

        Console::WriteLine("Ordered:\n");
        for each (int value in integerList)
        {
            Console::Write("{0}, ", value);
        }
        Console::WriteLine("<end>\n\nScrambled:\n");

        // Scramble the order of the items in the list.
        integerList->Scramble();

        for each (int value in integerList)
        {
            Console::Write("{0}, ", value);
        }
        Console::WriteLine("<end>\n");
    }

    void Scramble()
    {
        int limit = this->Count;
        int temp;
        int swapindex;
        Random^ rnd = gcnew Random();
        for (int i = 0; i < limit; i++)
        {
            // The Item property of ArrayList is the default indexer. Thus,
            // this->default[i] and this[i] are used interchangeably.
            temp = (int)this->default[i];
            swapindex = rnd->Next(0, limit - 1);
            this[i] = this->default[swapindex];
            this[swapindex] = temp;
        }
    }
};

int main()
{
    ScrambleList::Main();
}
// The program produces output similar to the following:
//
// Ordered:
//
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, <end>
//
// Scrambled:
//
// 5, 2, 8, 9, 6, 1, 7, 0, 4, 3, <end>
using System;
using System.Collections;

public class ScrambleList : ArrayList
{
    public static void Main()
    {
        // Create an empty ArrayList, and add some elements.
        ScrambleList integerList = new ScrambleList();

        for (int i = 0; i < 10; i++)
        {
            integerList.Add(i);
        }

        Console.WriteLine("Ordered:\n");
        foreach (int value in integerList)
        {
            Console.Write("{0}, ", value);
        }
        Console.WriteLine("<end>\n\nScrambled:\n");
        
        // Scramble the order of the items in the list.
        integerList.Scramble();
        
        foreach (int value in integerList)
        {
            Console.Write("{0}, ", value);
        }
        Console.WriteLine("<end>\n");
    }

    public void Scramble()
    {
        int limit = this.Count;
        int temp;
        int swapindex;
        Random rnd = new Random();
        for (int i = 0; i < limit; i++)
        {
            // The Item property of ArrayList is the default indexer. Thus,
            // this[i] is used instead of Item[i].
            temp = (int)this[i];
            swapindex = rnd.Next(0, limit - 1);
            this[i] = this[swapindex];
            this[swapindex] = temp;
        }
    }
}

// The program produces output similar to the following:
//
// Ordered:
//
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, <end>
//
// Scrambled:
//
// 5, 2, 8, 9, 6, 1, 7, 0, 4, 3, <end>
Imports System.Collections

Public Class ScrambleList
    Inherits ArrayList

    Public Shared Sub Main()
        ' Create an empty ArrayList, and add some elements.
        Dim integerList As New ScrambleList()

        For i As Integer = 0 To 9
            integerList.Add(i)
        Next i

        Console.WriteLine("Ordered:" + vbNewLine)
        For Each value As Integer In integerList
            Console.Write("{0}, ", value)
        Next value
        Console.WriteLine("<end>" + vbNewLine + vbNewLine + "Scrambled:" + vbNewLine)

        ' Scramble the order of the items in the list.
        integerList.Scramble()

        For Each value As Integer In integerList
            Console.Write("{0}, ", value)
        Next value
        Console.WriteLine("<end>" + vbNewLine)
    End Sub

    Public Sub Scramble()
        Dim limit As Integer = MyClass.Count
        Dim temp As Integer
        Dim swapindex As Integer
        Dim rnd As New Random()
        For i As Integer = 0 To limit - 1
            ' The Item property of ArrayList is the default indexer. Thus,
            ' Me(i) and MyClass.Item(i) are used interchangeably.
            temp = CType(Me(i), Integer)
            swapindex = rnd.Next(0, limit - 1)
            MyClass.Item(i) = Me(swapindex)
            MyClass.Item(swapindex) = temp
        Next i
    End Sub
End Class

' The program produces output similar to the following:
'
' Ordered:
'
' 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, <end>
'
' Scrambled:
'
' 5, 2, 8, 9, 6, 1, 7, 0, 4, 3, <end>

설명

합니다 Item[Int32] 반환을 Object이므로를 조작 하기 위해 반환 된 값을 원래 형식으로 캐스팅 해야 할 수 있습니다.The Item[Int32] returns an Object, so you may need to cast the returned value to the original type in order to manipulate it. 것이 중요 한 사실은 ArrayList 강력한 형식의 컬렉션이 아닙니다.It is important to note that ArrayList is not a strongly-typed collection. 강력한 대안을 참조 하세요. List<T>합니다.For a strongly-typed alternative, see List<T>.

ArrayList 허용 null 유효한 값으로 중복 요소를 허용 합니다.ArrayList accepts null as a valid value and allows duplicate elements.

이 속성은 myCollection[index] 구문을 사용하여 컬렉션의 특정 요소에 액세스하는 기능을 제공합니다.This property provides the ability to access a specific element in the collection by using the following syntax: myCollection[index].

이 C# 언어는 this 키워드를 사용 하 여 Item[Int32] 속성을 구현 하는 대신 인덱서를 정의 합니다.The C# language uses the this keyword to define the indexers instead of implementing the Item[Int32] property. Visual Basic에서는 동일한 인덱싱 기능을 제공하는 Item[Int32]을 기본 속성으로 구현합니다.Visual Basic implements Item[Int32] as a default property, which provides the same indexing functionality.

이 속성의 값을 검색 하는 작업은 0 @no__t입니다. 속성을 설정 하는 작업은 @no__t 1 작업 이기도 합니다.Retrieving the value of this property is an O(1) operation; setting the property is also an O(1) operation.

적용 대상

추가 정보