Метод расширения для List <T>AddToFront (T объект) как? - PullRequest
25 голосов
/ 09 июля 2011

Я хочу написать метод расширения для класса List, который берет объект и добавляет его вперед, а не назад. Методы расширения действительно смущают меня. Может ли кто-нибудь помочь мне с этим?

myList.AddToFront(T object);

1 Ответ

81 голосов
/ 09 июля 2011

List<T> уже имеет метод Insert, который принимает индекс, который вы хотите вставить в объект.В данном случае это 0. Вы действительно намереваетесь изобрести это колесо?

Если бы вы это сделали, вы бы сделали это так

public static class MyExtensions 
{
    public static void AddToFront<T>(this List<T> list, T item)
    {
         // omits validation, etc.
         list.Insert(0, item);
    }
}

// elsewhere

List<int> list = new List<int>();
list.Add(2);
list.AddToFront(1);
// list is now 1, 2

Но опять же, вы неполучить то, чего у вас еще нет.

...