Как стать автором
Обновить

С# extension methods: простой, но полезный пример

Время на прочтение 1 мин
Количество просмотров 43K
Что такое extension methods? Это возможность расширить функционал имеющегося класса добавив в него свой статичный метод. Вот простой пример, который в тоже время остается для меня очень полезным.
namespace SampleNS
{
public static class CommonUtil
{
    public static string ListToString(this IList list)
    {
        StringBuilder result = new StringBuilder("");
        
        if (list.Count > 0)
        {
            result.Append(list[0].ToString());
            for (int i = 1; i < list.Count; i++)
                result.AppendFormat(", {0}", list[i].ToString());                
        }
        return result.ToString();
    }
}
}


Что делает данный код? Он расширяет все классы реализующие интерфейс IList методом ListToString, который позволяет получить перечисление элементов списка через запятую в виде строки. Для расширения функционала стандартного интерфейса всего-то и нужно теперь подключить пространство имен SampleNS. (Комментарий: благодаря весьма полезному замечанию easyman, пример переписан с использованием класса StringBuilder)

Вот пример использования:
    var _list = DataContextORM.ExecuteQuery<string>("Select name from products").ToList();
    string result = _list.ListToString();


Этот пример получит в _list список названий всех продуктов, а затем присвоит строку с перечислением названий через запятую переменной result.

PS: перенес из персонального блога
Теги:
Хабы:
+20
Комментарии 91
Комментарии Комментарии 91

Публикации

Истории

Работа

.NET разработчик
66 вакансий

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн