Листе
Претходне школске године радио си са листама у програмском језику C, где није постојао уграђени тип листе - листе си морао да имплементираш ручно коришћењем структура и показивача. Најчешћи тип листе којег си користио била је повезана листа (енгл. linked list), која се састоји од низа чворова где сваки чвор садржи податке и указивач на следећи чвор.
У програмском језику C# листа представља јако типизирану листу објеката којима се може приступити путем индекса. Дефинисана је у класи List<T> у именском простору System.Collections.Generic, заједно са другим генеричким колекцијама о којима ћеш учити у IV разреду.
Класа List<T> пружа бројне функционалности за рад са динамичким низовима, као што су: приступ елементима, додавање нових елемената, брисање елемената, претрага елемената и сортирање елемената. Она може да чува елементе било ког типа, што омогућава већу флексибилност и сигурност при раду са различитим типовима података. За разлику од статички алоцираних низова чија је величина фиксна, листа аутоматски прилагођава своју величину када се у њу додају или из ње уклањају елементи.
Нека је задатак да креираш листу ucenici и у њу иницијално додаш три ученика чија су имена Paja, Raja и Gaja:
У листу можеш накнадно да додајеш ученике методом Add():
У конзоли, најједноставније, можеш да испишеш све ученике са листе помоћу наредбе циклуса за колекције:
Методом Reverse() можеш да обрнеш редослед ученика у листи...
...а у параметрима методе Reverse() можеш да дефинишеш, на пример, обртање редоследа од ученика са индексом 0, три ученика:
Методом Insert(); можеш да убациш новог ученика на листу, на пример, на треће место на листи (индекс 2) убаци ученика чије је име Pera:
Методом Sort() једноставно се сортирају сви ученици на листи...
...а претрага се може вршити методом Contains(). На пример, да ли се на листи налази ученик чије је име Raja:
if(ucenici.Contains("Raja"))
    Console.WriteLine("Nalazi se.");
else
    Console.WriteLine("Ne nalazi se.");
Подлисту можеш да креираш методом GetRange(), на пример, подлисту prvaGrupa у којој се налазе прва три ученика на листи:
Елементе листе можеш да копираш у низ, на пример елементе листе ucenici у низ nizUcenika:
На крају, све ученике можеш да обришеш са листе методом Clear():
Ако се говори о сличностима и разликама између рада са листама у програмским језицима C# и C, сигурно је прво запажање лакоћа коришћења листи у језику C# захваљујући обезбеђеној "подршци" у класи List<T>. Поред тога, у језику C# управљање меморијом је аутоматизовано захваљујући сакупљачу смећа (енгл. garbage collector), док у језику C корисник мора ручно да управља меморијом. Сличности су да листе у језицима C# и C омогућавају динамичко управљање низовима података и да могу да се користе за имплементацију различитих алгоритама и структура података.