我想为List
类编写一个扩展方法,该方法接受一个对象并将其添加到前面而不是后面。扩展方法真让我迷惑。有人可以帮我解决这个问题吗?
myList.AddToFront(T object);
答案 0 :(得分:79)
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
但是,再一次,你没有获得任何你没有的东西。
答案 1 :(得分:0)
您可以使用 IList 接口来代替使用 List,该接口为更多集合(如 BindingList 或更多)提供扩展方法。这是我的列表扩展方法
语法:
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;
}
}