2013-03-01 19 views
0

我正在制定庫存系統,但我不記得我可以使用哪種方法。我是否在列表中使用插入或者是否存在另一種方式C#

我有一個鼠標list<item>inventory<item>如果一個按鈕被點擊我想從清單中移除該項目,並將其移動到鼠標,(我做了),但隨後將其放回的地方是在那裏我有麻煩。

如果這裏沒有物品,那就簡單了......就是用插入物,但如果有物品,我該怎麼辦?將它添加到鼠標列表中,然後插入到位置,或者插入將舊列表項目移動到列表中的開始或結束或下一個列表項目。 或者,還有其他方法嗎?

基本上我想點擊一個按鈕,刪除已經存在的項目,並將其放入鼠標列表中的項目中,然後如果鼠標列表中已有內容,將其添加到舊項目所在的位置。

我想知道如何插入與列表工作。

如果我在索引2處插入對象/項目,那麼已經在該索引處的對象/項目會發生什麼變化,對象/項目是否已經上移並變爲索引3或是否被刪除。

我想知道如果我從列表中刪除某些東西,該索引變成null?的,即如果其這樣索引0 = 2索引1 = 51指數2 = 213指數3 = null指數4 = 234例如或未索引4成爲索引3

+0

我做了你問的最後2段落 – QuantumArchi 2013-03-01 11:16:08

回答

0

讓我們來看看,看看

static void Main(string[] args) 
{ 
    var names = new List<string> { "Homer", "Marge", "Lisa" }; 

    Show(names); 

    names.Insert(1, "Bart"); 
    Console.WriteLine("Inserted Bart at 1"); 

    Show(names); 

    names.RemoveAt(0); 
    Console.WriteLine("Removed Homer"); 
    Show(names); 
} 

private static void Show(List<string> names) 
{ 
    Console.WriteLine("Names"); 
    for (int i = 0; i < names.Count; i++) 
     Console.WriteLine("\t{0}: {1}", i, names[i]); 
} 

給我們。 。 。

名稱
0:荷馬
1:馬奇
2:莉莎
插入的巴特在1個
名稱
0:荷馬
1:巴特
2:馬奇
3:莉莎
刪除荷馬
名稱
0:Bart
1:馬奇
2:莉莎

大二

  1. 添加在第二位置,將移動之前的第二項 下降到第三個項目(以及其下的向下移動一個位置推一切太)
  2. 中的項目由一個 項目一切行動起來

科學的方法幫助有類似這樣的問題(即理論化,實驗,觀察,必要時重複)

這是否回答你的問題?

+0

是的,謝謝你,現在我可以建立我的庫存系統:) – QuantumArchi 2013-03-01 11:51:53

0

一個列表是一個在幕後的數組(如果你使用一些像反射器這樣的反彙編器,你可以檢查這個)。

話雖如此,當你從列表中刪除項目時,List<T>將從源有一個與除去刪除一個所有項目內部創建一個新的陣列。

在另一方面,當你插入到列表中的項目,你更換的項目在整個指數和一切從指數下跌向下移動一個位置(感謝BinaryWorrier)。索引中的對象不會被「銷燬」:您正在從列表中刪除對象引用。

+0

「另一方面,當你插入一個項目到列表中,你替換整個索引中的項目」。我知道,你知道,索引下的所有內容都被移到一個位置,並且新的項目放在指定的位置,但這不會在您的答案中傳達。 – 2013-03-01 11:47:10

+0

@BinaryWorrier Argh。謝謝 – 2013-03-01 11:59:59

相關問題