Борис Животное, мы же не знаем от чего автор задает такие вопросы. Может у него постоянно сети нет и только бумажная книга по C# 4.
Во вторых, многие книги по C# не переиздавались с 4ой версии, разве повод от них отказываться?
Внизу дали правильные ответы, но не забывай что главное побольше практики, и тогда понимание появится само. В свое несколько приложений написал до того как понял как на самом деле работают массивы)
Антон Р., тут какое то моделирование мира) Думаю моделировать класс магазина, а тем более создавать его -- излишество. То есть, здесь достаточно процедур. Пример с контактами хорош тем что одним массивом примитивов никак не обойтись, задача сама подталкивает создать именованные поля структуры "контакт".
Методы расширения не имеют доступа к приватным или защищенным членам класса, поэтому не могут считаться аналогом дружественных функций. Скорее они нужны для упрощения цепочки вызовов.