Adatstruktúra interfészek A kollekcióhoz kapcsolódó interfészek közül az egyik legfontosabb az IEnumerable interfész. Ez teszi lehetővé, hogy mindegyik. Az absztrakció következő szintje az IReadOnlyCollection és ICollection interfészek. Az ICollection egy módosítható kollekciót ír le, aminek az elemei törölhetőek és bővíthetőek. Az IReadOnlyCollection pedig egy olyant, amiből csak olvasni tudunk, de tudjuk az elemek számát. Az olyan típusok esetén, mint a lista, halmaz és asszociatív tömb kapunk speciális interfészeket, mind olvasható és módosítható változatban is. Láncolt lista A tömb adatszerkezet kiváló ha előre tudjuk, hogy mennyi elemre van szükségünk. A bővítés csak úgy lehetséges, hogy létrehozzuk egy újabb tömböt, aminek a mérete a hozzáadandó elemek számával meg van növelve. Az új tömbbe átmásoljuk a tömb elemeit, majd az új tömbhöz hozzáadjuk az új elemeket. Végezetül pedig töröljük az eredeti tömböt. Az algoritmus leírásából kiolvasható, hogy ez nem éppen ideális, mivel a sebességre igen negatív hatással van a másolás. Továbbá a másolás folyamán egy rövid időre duplázódik a programunk memóriahasználata. Egy sokkal jobb megoldás lehet nagy mennyíségú, előre nem ismert számú adat tárolására a láncolt lista szerkezet. A láncolt lista egy eleme két részből épül fel. Egyrészt tartalmazza a tárolni kívánt adatot, vagy adatokat és tartalmaz egy olyan mutatót, ami a lista egy másik elemét mutatja. Ha referencia a következő elemre nem létezik, akkor a lánc végén vagyunk. A láncolt lista a dinamikus tömbökhoöz képest hátránya a közbülső elemek elérhetőségéből ered. Míg egy tömb esetén ha tudjuk, hogy a k. elemet szeretnénk elérni, akkor a tömb idnexelésével rögtön hozzáférhetünk ehhez az adathoz, addig a láncolt listában a lista elejéről indulva a mutatókon keresztül addig kell lépkedni, míg a k. elemhez nem érünk. A véletlenszerű lista elem megtalálása a lista hosszávak arányos időt igényel.