Az ienumerable-t vagy az ilist-et használjam?

Pontszám: 4,3/5 ( 11 szavazat )

Az IEnumerable-t akkor használja, ha egy gyűjtemény elemei között szeretne végigmenni. Az IList az, amikor a lista tartalmát nem sorrendben kívánja hozzáadni, eltávolítani és hozzáférni.

Melyik a jobb az IEnumerable vagy az IList?

Az IEnumerable -hoz hasonlóan az IList is a legjobb a memórián belüli gyűjtemények (például Lista, Tömb stb.) adatok lekérdezésére. Az IList akkor hasznos, ha elemeket szeretne hozzáadni vagy eltávolítani a listából. Az IList a gyűjtemény iterálása nélkül is megtudhatja a gyűjtemény elemeinek számát. Az IList támogatja a késleltetett végrehajtást.

Az IEnumerable-t vagy az IList-t adjam vissza?

Általában jobb az IEnumerable<T> visszaadása , feltéve, hogy ebben minden benne van, amire a hívónak szüksége van. Az IEnumerable<T> előrelátható, ami sok fogyasztó számára elegendő. ... Ha azonban a fogyasztónak olyan metódusokra van szüksége, amelyek nincsenek az IEnumerable<T>-n, akkor az IList<T> értelmesebb lehet.

Mi a különbség az IEnumerable és az IList között?

Az IEnumerable még a listában szereplő elemek számát sem tartalmazza, ehelyett át kell iterálni az elemeket, hogy megkapja az elemek számát. ... Az IList képes végrehajtani az IEnumerable és az ICollection összes műveletét , valamint néhány további műveletet, például egy elem beszúrását vagy eltávolítását a lista közepén.

Az IEnumerable-t vagy az ICollection-t használjam?

Az IEnumerable csak GetEnumerator() metódust tartalmaz, mint például az írásvédett iteráció. Az ICollection egy lépéssel az IEnumerable előtt jár. Ha további funkciókra van szükségünk, mint például az elem hozzáadása vagy eltávolítása, akkor jobb, ha az ICollection-t választjuk, mert ezt az IEnumerable segítségével nem tudjuk elérni. Az ICollection kiterjeszti az IEnumerable-t.

Lista vs IList a C#-ban

18 kapcsolódó kérdés található

Melyik a jobb IList vagy List?

A fő különbség a List és az IList között a C#-ban az, hogy a List egy osztály, amely az index által elérhető objektumok listáját képviseli, míg az IList egy interfész, amely az index által elérhető objektumok gyűjteményét képviseli. ... Összességében a List egy konkrét típus, amely megvalósítja az IList felületet.

Melyik a gyorsabb List vagy IEnumerable?

IQueryable: Az IQueryable a rekordot szűrő alapján kéri le. Az IQueryable gyorsabb, mint az IEnumerable . Munesh Sharma válasza mellett: Az IEnumerable betölti az adatokat a memóriába, majd egyesével alkalmazza a szűrőket, de az IQueryable egyszerre alkalmazza a szűrőket, és visszaadja az eredményt.

Miért használjuk az IEnumerable-t?

Az IEnumerable interfészt akkor használjuk , ha az osztályaink között foreach ciklust használunk . Az IEnumerable interfésznek van egy metódusa, a GetEnumerator, amely egy IEnumerator interfészt ad vissza, amely segít az osztályok között a foreach ciklus használatával iterálni.

Melyik a jobb IEnumerable vagy IQueryable?

IEnumerable: Az IEnumerable a legalkalmasabb a memórián belüli gyűjtemény (vagy helyi lekérdezések) kezelésére. Az IEnumerable nem mozog az elemek között, csak továbbító gyűjtemény. IQueryable: Az IQueryable a legjobban megfelel távoli adatforrásokhoz, például adatbázisokhoz vagy webszolgáltatásokhoz (vagy távoli lekérdezésekhez).

Miért használják az ICollectiont a C#-ban?

Az ICollection interfész az osztályok alapfelülete a rendszerben. Gyűjtemények névtér . ... Az IDictionary implementáció kulcs/érték párok gyűjteménye, mint például a Hashtable osztály. Az IList implementáció értékek gyűjteménye, és tagjai indexen keresztül érhetők el, mint például az ArrayList osztály.

Hogyan küldhetek vissza egy IList?

Visszatérő IList<IList<T>> Szeretném, ha a visszatérési típus az általános IList <> interfészt használja, hogy csökkentse a csatolást a konkrét List<> típushoz.

Mi az IEnumerable visszatérési típusa?

Az IEnumerable-nak csak egy GetEnumerator nevű metódusa van. Ez a metódus egy másik típust ad vissza, amely egy IEnumerator interfész . Ha bármely gyűjteményosztályban meg akarjuk valósítani a számláló logikáját, akkor annak implementálnia kell az IEnumerable interfészt (akár általános, akár nem általános).

Hogyan küldhetek vissza listát az IEnumerable-ból?

Az AsEnumerable kiterjesztési módszert használhatja az Assembly Systemben. Core and System. Linq névtér : Lista<Könyv> lista = új Lista<Könyv>(); visszaküldési lista.

Az ICollection megrendelve van?

Az ICollection<T> csak egy interfész ; Az, hogy megrendelt-e vagy sem, teljes mértékben a mögöttes megvalósítástól függ (amelynek átláthatatlannak kell lennie).

Hogyan találhatom meg egy IEnumerable List értékét?

Az IEnumerable listából az első elemértékeket a First() tulajdonság használatával kaphatjuk meg, vagy a listán végigfutva megkapjuk a megfelelő elemet. Az IEnumerable lista az összes gyűjtemény alapja, és képes a gyűjteményben a jelenlegi tulajdonság, a MoveNext és a Reset metódusok használatával a c#-ban, vb.net-ben áthaladni.

Mi az IQueryable a C#-ban?

Az IQueryable felület a lekérdezésszolgáltatók általi megvalósításra szolgál . ... Az IQueryable felület örökli az IEnumerable interfészt, így ha lekérdezést reprezentál, akkor a lekérdezés eredményei felsorolhatók. A felsorolás hatására az IQueryable objektumhoz társított kifejezésfa végrehajtásra kerül.

Az IEnumerable lusta betöltés?

Az IEnumerable nem támogatja a lusta betöltést . Az IQueryable támogatja a lusta betöltést. Ezért alkalmas lapozáshoz hasonló forgatókönyvekhez.

Hol használják az IQueryable-t?

Az IQueryable olyan kifejezési objektumokat használ, amelyek eredményeként a lekérdezés csak akkor fut le, ha az alkalmazás felsorolást kér. Használja az IQueryable-t, ha ad-hoc lekérdezéseket kell futtatnia olyan adatforrásokhoz, mint a LinQ az SQL Serverhez, az Entity framework és más források, amelyek megvalósítják az IQueryable-t.

Az IQueryable IEnumerálható?

Az IEnumerable- t az IQueryable örökli , így az IQueryable rendelkezik az IEnumerable összes funkciójával, és ezt leszámítva saját jellemzői vannak. Mindkettőnek megvan a maga jelentősége az adatok lekérdezésében és az adatkezelésben.

IEnumerálható a memóriában?

Az IEnumerable csak olvasható , a List pedig nem. A számtalan típusnak van egy módszere a gyűjtemény következő elemének megszerzésére. ... A lista megvalósítja az IEnumerable-t, de a teljes gyűjteményt képviseli a memóriában.

A tömbök IEnumerálhatók?

Minden tömb megvalósítja az IList és az IEnumerable . Használhatja az összes iterációs tömböt C# nyelven.

Mit jelent a IEnumerable?

Az IEnumerable egy olyan felület, amely egyetlen GetEnumerator() metódust határoz meg, amely egy IEnumerator interfészt ad vissza . Ez az alapfelület minden felsorolható, nem általános gyűjteményhez. Ez akkor működik, ha csak olvasható hozzáférést biztosít egy olyan gyűjteményhez, amely megvalósítja, hogy az IEnumerable foreach utasítással használható.

Az IQueryable gyorsabb, mint a List?

A GetList(context) visszaadhat egy egyéni LINQ-szolgáltató által támogatott objektumot (például egy Entity Framework gyűjteményt), akkor valószínűleg meg szeretné hagyni az átvitt adatokat IQueryable-ként: bár a referenciaérték szerint 20-szor gyorsabb egy lista használata , ez a különbség olyan kicsi, hogy egyetlen felhasználó sem lesz képes...

Az IEnumerable gyorsabb, mint a C# lista?

Megoldás: Egy IEnumerálható <T> felsorolása 2-3-szor lassabb, mint ugyanazon List<T> közvetlen felsorolása. Ez annak köszönhető, hogy a C# hogyan választja ki a felsorolóját egy adott típushoz.

Az IEnumerable egy gyűjtemény?

Az IEnumerable<T> egy interfész, amely egy sorozatot reprezentál . Most; a gyűjtemények általában szekvenciaként használhatók (tehát... A List<T> megvalósítja az IEnumerable<T> -t), de ennek fordítottja nem feltétlenül igaz. Valójában nem feltétlenül szükséges, hogy egy sorozatot ( IEnumerable<T> ) többször is iterálhasson.