开发者

Extension method for List<T> AddToFront(T object) how to?

I want to write an extension method for the List class that takes an object and adds it to the front instead of the back. Extension methods really confuse me. Can someone help me out with this?

myList.AddT开发者_Python百科oFront(T object);


List<T> already has an Insert method that accepts the index you wish to insert the object. In this case, it is 0. Do you really intend to reinvent that wheel?

If you did, you'd do it like this

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

But again, you're not gaining anything you do not already have.


Instead of using List, you can use IList interface which provides the extension methods for many more collections like BindingList or more. Here are my extension methods for list

Syntax:

public static class ExtensionMethods
{
    public static void AddToFront<T>(this IList<T> list, T item)
    {
         if(list is null) throw new ArgumentNullException("Can't add items to null List");
         list.Insert(0, item);
    }

    public static bool IsNullOrEmpty<T>(this IList<T> list)
    {
         if(list is null || list.Count == 0) return true;
         return false;
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜