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:
- Seznam je postaven na vrcholu pole, zatímco pole je datová struktura nižší úrovně.
- 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.
- 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.
- 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.
- 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ů.
- 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.
- Seznam je odvozen ze sbírky, která obsahuje obecnější datový typ, zatímco pole je pevné a obsahuje silnější datový typ.
- 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é.
- 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.
- 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 Array | Seznam | Pole |
Stvoření | Postaveno na vrcholu pole | Původní struktura dat založená na konceptu indexu |
Paměť | Zabírá více paměti než Array | Paměťově efektivní |
Délka | Dé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 velikost | Seznam změn je svou povahou dynamický | Změna velikosti polí je drahá |
Struktura | Nespojitá paměť | Přilehlé umístění paměti |
Indexování | Struktura bez indexu | Index založený na nejnižší adrese jako první a nejvyšší na poslední adrese |
Přístup | Přístupový prvek je časově náročný, i když je založen na poloze prvku | Pří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 -
- Seznamy polí a seznam Java - hodnotné rozdíly
- Amazing Guide on C vs Java
- Java Vector a ArrayList
- C # vs Js - úžasné rozdíly
- C # Array vs List: Rozdíly
- Vyžadovat vs import: Chcete znát výhody
- C vs C #: Jaké jsou nejlepší rozdíly
- C # vs JavaScript: Jaké jsou funkce