ArrayList.Item[Int32] Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger elementet vid det angivna indexet.
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; }
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
Parametrar
- index
- Int32
Det nollbaserade indexet för det element som ska hämtas eller anges.
Egenskapsvärde
Elementet i det angivna indexet.
Implementeringar
Undantag
Exempel
Följande kodexempel skapar och ArrayList lägger till flera objekt. Exemplet visar hur du kommer åt element med Item[] egenskapen (indexeraren i C#) och ändrar ett element genom att Item[] tilldela egenskapen ett nytt värde för ett angivet index. Exemplet visar också att Item[] egenskapen inte kan användas för att komma åt eller lägga till element utanför listans aktuella storlek.
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
I följande exempel används Item[] egenskapen explicit för att tilldela värden till objekt i listan. Exemplet definierar en klass som ärver en ArrayList och lägger till en metod för att förvränga listobjekten.
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:" + Environment.NewLine)
For Each value As Integer In integerList
Console.Write("{0}, ", value)
Next value
Console.WriteLine("<end>" + Environment.NewLine + Environment.NewLine + "Scrambled:" + Environment.NewLine)
' 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>" + Environment.NewLine)
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>
Kommentarer
Item[] Returnerar ett Object, så du kan behöva omvandla det returnerade värdet till den ursprungliga typen för att kunna ändra det. Det är viktigt att notera att det ArrayList inte är en starkt typad samling. Ett starkt skrivskyddat alternativ finns i List<T>.
ArrayList
null accepterar som ett giltigt värde och tillåter duplicerade element.
Den här egenskapen ger möjlighet att komma åt ett specifikt element i samlingen med hjälp av följande syntax: myCollection[index].
C#-språket använder nyckelordet this för att definiera indexerarna i stället för att Item[] implementera egenskapen. Visual Basic implementerar Item[] som en standardegenskap, vilket ger samma indexeringsfunktioner.
Att hämta värdet för den här egenskapen är en O(1) åtgärd. Att ange egenskapen är också en O(1) åtgärd.