Rozdíly mezi C # List vs Array

Třída C # List představuje silně napsaný seznam objektů, ke kterým má index přístup a podporuje ukládání hodnot konkrétního typu bez přetypování na nebo z objektu.

Seznam, kde parametr T je typ prvků v seznamu. Některé funkce seznamu jsou uvedeny níže:

Přidejte celé hodnoty do kolekce Seznam:

Seznam intList = new List ();

intL) ist.Add (2);

intList.Add (3);

intList.Add (4);

Přidejte hodnoty řetězce do kolekce Seznam:

Barvy seznamu = nový seznam ();

colors.add („red“);

colors.add („bílá“);

colors.add („zelená“);

Načíst položky ze kolekce List pomocí smyčky:

foreach (barva řetězce v barvách) (

MessageBox.Show (barva)

)

Pole ukládá sekvenční kolekci prvků stejného typu s pevnou velikostí. Používá se k ukládání kolekcí dat, ale pole lze považovat za kolekci proměnných stejného typu uložených na sousedních paměťových místech. Všechna pole se skládají z přilehlých paměťových míst, přičemž nejnižší adresa odpovídá prvnímu prvku a nejvyšší adresa poslednímu prvku.

Deklarovat pole v C #:

datatype () typeName; // DataType se používá k určení typu prvků v poli

Inicializace pole:

double () balance = new double (50);

Přiřazení hodnot matici:

dvojitý () zůstatek = (23, 0, 34, 56, 44, 32);

Přístup k prvkům pole;

Foreach (int value in balance) (

Console.WriteLine („element is:“ + value);

)

Vytvořit a inicializovat pole současně:

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

Zkopírujte proměnnou pole do jiné cílové proměnné pole:

Int () count = kroky;

jak cílový, tak zdrojový bod směřují na stejné místo v paměti

Porovnání mezi hlavami mezi C # List a Array Infographics

Níže je uvedeno osm největších rozdílů mezi C # List a Array

Klíčové rozdíly mezi C # List a Array

Oba C # List vs Array výkon jsou populární volby na trhu; pojďme diskutovat o některých hlavních rozdílech mezi seznamy C # a Array:

  1. Seznam je postaven na vrcholu pole, zatímco pole je datová struktura nižší úrovně.
  2. Seznam je dodáván ve formě API v C # s nadřazenou třídou Collection, zatímco Array je datová struktura nižší úrovně s vlastními specifickými vlastnostmi.
  3. Seznam není založen na indexu, založený na konceptu uzlů, zatímco pole jsou indexová datová struktura s nejnižší adresou poskytovanou prvnímu prvku a nejvyšší adresa je poskytována poslednímu prvku v poli.
  4. Seznam má dynamickou povahu, tj. Jejich velikost se automaticky zvětšuje s větším vkládáním prvků, zatímco pole jsou pevně strukturovaná velikost, jakmile je inicializovaná, nelze ji resetovat.
  5. Seznam je lepší pro časté vkládání a mazání, zatímco pole jsou mnohem vhodnější pro častý přístup k scénářům prvků.
  6. Seznam zabírá mnohem více paměti, protože každý definovaný uzel má seznam svou vlastní paměť, zatímco pole jsou datově efektivní z hlediska paměti.
  7. Seznam je odvozen ze sbírky, která obsahuje obecnější datový typ, zatímco pole je pevné a obsahuje silnější datový typ.
  8. Seznam obsahuje uzly, které mají umístění paměti, nemusí být svou povahou souvislé, zatímco pole obsahuje prvky s jejich umístěním paměti, které jsou svou povahou souvislé.
  9. Nespojitá vlastnost Listu způsobuje, že jim zabere více času v přístupu k elementům, zatímco sousedící vlastnost Array je činí vysoce účinnými pro přístup k elementům.
  10. Seznam využívá generiky, je to v podstatě typově bezpečná verze ArrayListu a generuje chybu při kompilaci, zatímco pole s typově bezpečným, vysoce účinným z hlediska rychlosti a výkonu podporují více dimenzí.

Srovnání Head to Head mezi C # List vs Array

Níže je nejvyšší srovnání mezi C # List vs Array

Základ srovnání mezi C # List vs ArraySeznamPole
StvořeníPostaveno na vrcholu polePůvodní struktura dat založená na konceptu indexu
PaměťZabírá více paměti než ArrayPaměťově efektivní
DélkaDélka se lišíPevná délka délky
PoužíváníČasté vkládání a mazáníČastý přístup k prvkům
Změnit velikostSeznam změn je svou povahou dynamickýZměna velikosti polí je drahá
StrukturaNespojitá paměťPřilehlé umístění paměti
IndexováníStruktura bez indexuIndex založený na nejnižší adrese jako první a nejvyšší na poslední adrese
PřístupPřístupový prvek je časově náročný, i když je založen na poloze prvkuPřístupový prvek je operace s konstantním časem bez ohledu na umístění prvku

Závěr - C # List vs Array

Oba C # List vs Array jsou odlišné typy, mají různé schopnosti a ukládají svá data odděleně. Díky těmto schopnostem ukládání a designu datových struktur C # List vs Array jsou jejich vlastní způsoby jedinečné. Pole má pevnou velikost a jakmile je přiděleno, nelze z něj přidávat ani odebírat položky, také všechny prvky musí být stejného typu. Jedná se tedy o typově bezpečnou a nejúčinnější lineární datovou strukturu z hlediska rychlosti a výkonu. Array také podporuje více dimenzí. Seznam poskytuje obecnější funkce a je odvozen z kolekce API. Na rozdíl od Array, jsou dynamické povahy, mohou automaticky měnit velikost při častém vkládání a mazání prvků. Je to v podstatě typově bezpečná verze datové struktury ArrayList. Bezpečnostní funkce typu znamená, že neexistuje box ani rozbalení, které by zvýšilo výkon, a pokud se někdo pokusí přidat prvek nesprávného typu, vygeneruje chybu kompilace.

C # List vs Array výkon je lineární datová struktura, která se dobře hodí pro různé scénáře. Pokud dochází k častému vkládání a mazání a současně paměť není omezením, pak je List ideální volbou, zatímco ve scénářích, jako je častý přístup prvků požadovaných s omezením paměti, je Array lepší volbou. Vše záleží na případu použití a požadavku. Pole je vždy v přírodě seznam, ale seznam není pole. Pole umožňuje oba druhy přístupu, přímý i sekvenční, zatímco seznam umožňuje pouze sekvenční přístup. A to proto, že způsob, jakým jsou tyto datové struktury uloženy v paměti. Protože seznam je odvozen ze sbírky, může se lišit v různých implementacích, jednou z těchto implementací je ArrayList, což je třída, která implementuje chování seznamu pomocí polí jako struktury dat. Pole je velmi svázáno s hardwarovou představou spojité, souvislé paměti, přičemž každý prvek má stejnou velikost. Oba nápady na výkon C # List vs Array se sestavují docela dobře, na základě scénářů. Na konci dne se vše scvrkne na požadavek, i když paměťová část může být v dnešním světě bezpečně postranní, protože vysoká paměť se stala normou.

Doporučený článek

Toto byl průvodce nejvyššími rozdíly mezi C # List vs Array. Tady také diskutujeme o klíčových rozdílech C # List vs Array s infografiky a srovnávací tabulkou. Můžete se také podívat na následující články -

  1. Seznamy polí a seznam Java - hodnotné rozdíly
  2. Amazing Guide on C vs Java
  3. Java Vector a ArrayList
  4. C # vs Js - úžasné rozdíly
  5. C # Array vs List: Rozdíly
  6. Vyžadovat vs import: Chcete znát výhody
  7. C vs C #: Jaké jsou nejlepší rozdíly
  8. C # vs JavaScript: Jaké jsou funkce

Kategorie: