Różnice między listą C # a macierzą

Klasa C # List reprezentuje silnie wpisaną listę obiektów, do których indeks może uzyskać dostęp i obsługuje przechowywanie wartości określonego typu bez rzutowania do lub z obiektu.

Lista, gdzie parametr T jest rodzajem elementów na liście. Niektóre funkcje listy podano poniżej:

Dodaj wartości całkowite do kolekcji List:

List intList = new List ();

intL) ist.Add (2);

intList.Add (3);

intList.Add (4);

Dodaj wartości String do kolekcji List:

Kolory listy = nowa List ();

colors.add („czerwony”);

colors.add („biały”);

colors.add („zielony”);

Pobierz elementy z kolekcji List za pomocą pętli for:

foreach (kolor sznurka w kolorach) (

MessageBox.Show (kolor)

)

Tablica przechowuje sekwencyjny zbiór elementów tego samego typu o stałej wielkości. Służy do przechowywania kolekcji danych, ale tablicę można uznać za zbiór zmiennych tego samego typu przechowywanych w sąsiadujących lokalizacjach pamięci. Wszystkie tablice składają się z ciągłych lokalizacji pamięci, przy czym najniższy adres odpowiada pierwszemu elementowi, a najwyższy adres do ostatniego elementu.

Zadeklaruj tablicę w C #:

datatype () typeName; // DataType służy do określania typu elementów w tablicy

Inicjowanie tablicy:

double () balance = nowy double (50);

Przypisywanie wartości do tablicy:

saldo double () = (23, 0, 34, 56, 44, 32);

Dostęp do elementów tablicy;

Foreach (wartość całkowita w bilansie) (

Console.WriteLine („element to:” + wartość);

)

Utwórz i zainicjuj tablicę w tym samym czasie:

Int () steps = new int (6) (1, 2, 3, 4, 5, 6);

Skopiuj zmienną tablicową do innej zmiennej tablicowej:

Int () count = steps;

zarówno cel, jak i źródło wskazują tę samą lokalizację pamięci

Bezpośrednie porównanie między listą C # a infografiką macierzową

Poniżej znajduje się 8 najważniejszych różnic między listą C # a macierzą

Kluczowe różnice między listą C # a macierzą

Zarówno wydajność C # List vs Array to popularne wybory na rynku; omówmy niektóre z głównych różnic między listą C # a macierzą:

  1. Lista jest zbudowana na górze tablicy, natomiast tablica jest strukturą danych niższego poziomu.
  2. Lista jest dostarczana w postaci interfejsów API w języku C # z elementem nadrzędnym jako klasą Collection, natomiast Array to struktura danych niższego poziomu z własnymi specyficznymi właściwościami.
  3. Lista nie jest oparta na indeksie, oparta na koncepcji węzłów, natomiast tablice to oparte na indeksie struktury danych o najniższym adresie podawanym do pierwszego elementu, a najwyższy adres do ostatniego elementu w tablicy.
  4. Lista ma charakter dynamiczny, tzn. Ich rozmiar automatycznie zwiększa się wraz z większą liczbą wstawianych elementów, natomiast tablice mają stałą strukturę rozmiarów, po zainicjowaniu nie można zresetować.
  5. Lista jest lepsza do częstego wstawiania i usuwania, natomiast tablice są znacznie lepiej dostosowane do częstego dostępu do scenariusza elementów.
  6. Lista zajmuje znacznie więcej pamięci, ponieważ każdy zdefiniowany węzeł Lista ma swój własny zestaw pamięci, natomiast tablice są strukturą danych wydajną pod względem pamięci.
  7. Lista pochodzi z Kolekcji, która zawiera bardziej ogólny typ danych, natomiast tablica jest stała i przechowuje silniejszy typ danych.
  8. Lista zawiera węzły, które mają lokalizacje pamięci z natury nie muszą być ciągłe, podczas gdy tablica zawiera elementy z ich lokalizacją pamięci, które są z natury ciągłe.
  9. Niesąsiadująca właściwość List sprawia, że ​​dostęp do elementów zajmuje im więcej czasu, zaś ciągła właściwość Array sprawia, że ​​są bardzo wydajni w dostępie do elementów.
  10. Wymień ogólne funkcje dźwigni, jest to w zasadzie bezpieczna wersja ArrayList i generuje błąd czasu kompilacji, podczas gdy tablice ze swoim bezpiecznym typem, wysoce wydajnym pod względem prędkości i wydajności, obsługują wiele wymiarów.

Bezpośrednie porównanie między listą C # a macierzą

Poniżej znajduje się najwyższe porównanie między listą C # a macierzą

Podstawa porównania między listą C # a macierząListaSzyk
kreacjaZbudowany na szczycie tablicyOryginalna struktura danych oparta na koncepcji indeksu
PamięćZajmują więcej pamięci niż tablicaWydajna pamięć
DługośćDługość może się różnićNaprawiono rozmiar długości
StosowanieCzęste wstawianie i usuwanieCzęsty dostęp do elementu
Zmień rozmiarLista zmiany rozmiaru ma charakter dynamicznyZmiana rozmiaru tablic jest droga
StrukturaNieprzylegająca pamięćPrzylegająca lokalizacja pamięci
IndeksowanieStruktura nieindeksowanaIndeks oparty na najniższym adresie jako pierwszym, a najwyższym adresie jako ostatnim
DostępElement dostępu jest czasochłonny, chociaż opiera się na pozycji elementuElement dostępowy jest operacją o stałym czasie, niezależnie od położenia elementu

Wniosek - lista C # vs macierz

Zarówno lista C # vs macierz są odrębnymi typami, mają różne możliwości i przechowują swoje dane na różne sposoby. Te możliwości przechowywania i konstrukcja zarówno struktur danych C # List jak i Array czynią je wyjątkowymi na swój sposób. Tablica ma ustalony rozmiar i po jej przydzieleniu nie można dodawać ani usuwać z niej elementów, a także wszystkie elementy muszą być tego samego typu. Jest to więc bezpieczna pod względem typu i najbardziej wydajna struktura danych liniowych pod względem szybkości i wydajności. Ponadto tablica obsługuje wiele wymiarów. Lista zawiera bardziej ogólne możliwości i pochodzi z interfejsów API Collection. W przeciwieństwie do Array, mają one charakter dynamiczny, mogą zmieniać rozmiar automatycznie przy częstym wstawianiu i usuwaniu elementów. Jest to zasadniczo bezpieczna dla typu wersja struktury danych ArrayList. Funkcja bezpieczeństwa typu oznacza, że ​​nie ma żadnego boksowania lub rozpakowywania, które poprawiłyby wydajność, a jeśli ktoś spróbuje dodać element niewłaściwego typu, wygeneruje błąd czasu kompilacji.

Wydajność listy C # vs macierz jest liniową strukturą danych, która jest dobrze dostosowana do różnych scenariuszy. Jeśli zdarza się częste wstawianie i usuwanie, a jednocześnie pamięć nie jest ograniczeniem, to List jest idealnym wyborem, podczas gdy w scenariuszach takich jak częsty dostęp do wymaganych elementów z ograniczeniem pamięci, lepszym rozwiązaniem jest Tablica. Wszystko zależy od przypadku użycia i wymagań. Tablica jest zawsze listą z natury, ale lista nie jest tablicą. Tablica umożliwia oba rodzaje dostępu, bezpośredni i sekwencyjny, podczas gdy Lista pozwala tylko na dostęp sekwencyjny. A to dlatego, że te struktury danych są przechowywane w pamięci. Ponieważ List wywodzi się z Collection, może on zawierać różne implementacje, jedną z tych implementacji jest ArrayList, która jest klasą, która implementuje zachowanie listy przy użyciu tablic jako struktury danych. Tablica jest bardzo mocno związana ze sprzętowym pojęciem ciągłej, ciągłej pamięci, przy czym każdy element ma identyczny rozmiar. Zarówno pomysły C # List jak i Array dotyczące wydajności dość dobrze się zestawiają, w zależności od scenariuszy. Pod koniec dnia wszystko sprowadza się do wymagań, choć część pamięci może być bezpiecznie boczna w dzisiejszym świecie, ponieważ wysoka pamięć stała się normą.

Polecany artykuł

Jest to przewodnik po najważniejszych różnicach między listą C # a macierzą. Tutaj omawiamy również różnice między kluczem C # a tablicą z infografikami i tabelą porównawczą. Możesz także zapoznać się z następującymi artykułami -

  1. Listy tablic a listy Java - wartościowe różnice
  2. Niesamowity przewodnik po C vs Java
  3. Wektor Java i ArrayList
  4. C # vs Js - Niesamowite różnice
  5. C # Array vs List: Differences
  6. Wymagaj a importuj: chcesz poznać korzyści
  7. C vs C #: Jakie są najlepsze różnice
  8. C # vs JavaScript: jakie są funkcje