C#-s kasutatakse elementide kogumite salvestamiseks nii loendeid kui ka massiivid, kuid neil on olulisi erinevusi paindlikkuse, jõudluse ja kasutuse osas.
1. Massiivid (T[])
Fikseeritud suurus: Pärast loomist ei saa pikkust muuta.
Kiire juurdepääs: Indeksipõhine juurdepääs on väga kiire.
Sobib kõige paremini: Tuntud, fikseeritud suurusega kogudele, kus jõudlus on kriitilise tähtsusega.
Näide:
using System;
class Program
{
static void Main()
{
// Declare and initialize an array
int[] numbers = { 1, 2, 3, 4, 5 };
// Access elements
Console.WriteLine("First element: " + numbers[0]);
// Modify an element
numbers[2] = 99;
// Iterate through array
Console.WriteLine("Array elements:");
foreach (int num in numbers)
{
Console.Write(num + " ");
}
}
}
2. Listid (List<T>)
Dünaamiline suurus: Saab käitusajal kasvada või kahaneda.
Rohkem funktsioone: Sisseehitatud meetodid nagu Add, Remove, Contains, Sort, jne.
Sobib kõige paremini: Kogudele, mille suurus sageli muutub.
Näide:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Create a list of integers
List<int> numbers = new List<int> { 1, 2, 3 };
// Add elements
numbers.Add(4);
numbers.AddRange(new int[] { 5, 6 });
// Remove an element
numbers.Remove(2);
// Check if list contains a value
if (numbers.Contains(3))
{
Console.WriteLine("List contains 3");
}
// Iterate through list
Console.WriteLine("List elements:");
foreach (int num in numbers)
{
Console.Write(num + " ");
}
}
}
3. Peamiste erinevuste tabel
| Funktsioon | Array (T[]) | List (List<T>) |
|---|---|---|
| Suurus | Fikseeritud | Dünaamiline |
| Jõudlus | Veidi kiirem | Veidi aeglasem (suuruse muutmise tõttu) |
| Mälu | Kompaktne | Võib eraldada lisaruumi |
| Sisseehitatud Meetodid | Vähesed (Length, IndexOf) | Palju (Add, Remove, Sort, jne.) |
| Kasutusjuhtum | Fikseeritud suurusega andmed | Paindlikud, muutuvad andmed |