2013-12-20 282 views
0

如何從列表中刪除Test類中添加的武器?我嘗試了weapon.RemoveItems(Weapon)之類的東西,但這不起作用。如何從列表中刪除項目

InventorySlot<Weapon> weapon = new InventorySlot<Weapon>(); 

public Test() 
{ 
    weapon.AddItems(new Weapon()); 
    weapon.RemoveItems();  
} 

class InventorySlot<T> 
{ 
    List<T> items = new List<T>(); 

    public int Count 
    { 
     get { return this.items.Count; } 
    } 

    public void AddItems(T item) 
    { 
     this.items.Add(item); 
    } 

    public void RemoveItems(T item) 
    { 
     this.items.Remove(item); 
    } 

    public T GetItem(int index) 
    { 
     return items[index]; 
    } 
} 
+1

items.Remove(item)應該正常工作 - 你會得到任何錯誤ORS? – Liath

+0

[如何從通用列表中刪除項目](http://stackoverflow.com/questions/4903893/how-to-delete-an-item-from-a-generic-list) –

回答

3

您可以從列表通過索引或引用刪除項目:

list.RemoveAt(0);  // removes the first item in the list 

list.Remove(myWeapon); // removes the instance myWeapon from the list 

或間接使用LINQ:

var firstItem = list.First(); 
list.Remove(firstItem); 

var lastItem = list.Last(); 
list.Remove(lastItem); 
0

如果你知道你想要的項目的index刪除,然後嘗試list.RemoveAt(index);