Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Endimensionella matriser som har en lägre gräns på noll implementerar IList<T>automatiskt . På så sätt kan du skapa generiska metoder som kan använda samma kod för att iterera via matriser och andra samlingstyper. Den här tekniken är främst användbar för att läsa data i samlingar. Gränssnittet IList<T> kan inte användas för att lägga till eller ta bort element från en matris. Ett undantag utlöses om du försöker anropa en IList<T> metod, till exempel RemoveAt på en matris i den här kontexten.
I följande kodexempel visas hur en enda allmän metod som tar en IList<T> indataparameter kan iterera genom både en lista och en matris, i det här fallet en matris med heltal.
class Program
{
static void Main()
{
int[] arr = [0, 1, 2, 3, 4];
List<int> list = new List<int>();
for (int x = 5; x < 10; x++)
{
list.Add(x);
}
ProcessItems<int>(arr);
ProcessItems<int>(list);
}
static void ProcessItems<T>(IList<T> coll)
{
// IsReadOnly returns True for the array and False for the List.
System.Console.WriteLine
("IsReadOnly returns {0} for this collection.",
coll.IsReadOnly);
// The following statement causes a run-time exception for the
// array, but not for the List.
//coll.RemoveAt(4);
foreach (T item in coll)
{
System.Console.Write(item?.ToString() + " ");
}
System.Console.WriteLine();
}
}