ListAddToFront(T对象)如何

本文关键字:对象 如何 AddToFront List | 更新日期: 2023-09-27 18:01:32

我想为List类编写一个扩展方法,该方法接受一个对象并将其添加到前面而不是后面。扩展方法真的让我很困惑。有人能帮我一下吗?

myList.AddToFront(T object);

List<T>AddToFront(T对象)如何

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

但是,你没有得到任何你没有的东西

您可以使用IList接口,而不是使用List,它提供了更多集合(如BindingList或更多)的扩展方法。下面是list

的扩展方法

语法:

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;
    }
}