回答
當然。
var temp = array[i];
array[i] = array[j];
array[j] = temp;
那麼,它會交換,但問題是如此模糊,這聽起來像是一個刪除和插入會更好... – 2013-02-09 20:00:54
數組通常被認爲是固定的大小。因此,交換對我來說似乎與移動數組中的項目一樣近。 – 2013-02-09 20:02:30
當然你可以;
var array= new int[]{1, 2, 3};
foreach (var i in array)
{
Console.WriteLine (i);
}
array[1] = array[2];
foreach (var j in array)
{
Console.WriteLine (j);
}
結果會;
1 2 3
1 3 3
這是DEMO
。
但是,當然,這會應對從一個值到另一個值的價值。舊的索引值被移動到新的索引值。如果您想要使用更改值,可以使用temp
值,如Daniel's answer。
在C#中移動一個值與將橙色從冰箱移動到桌面上非常不同,因爲當您將橙色從一個地方移動到另一個地方時,舊地方不再包含橙色。
將某個項目在陣列中,而另一方面,實質上是複製*的行爲,所以你可以寫這樣的事情:
myArray[newIndex] = myArray[oldIndex];
現在從舊索引項被移到它的新索引。舊索引也包含該項目。如果你不希望發生這種情況,你需要通過用其他東西替換來明確地「移除」該物品。在參考對象的數組你null
替換:
myArray[oldIndex] = null;
在值對象的數組,你用你指定爲「無」的一些特殊值取代它,或者用null
如果你的值對象爲空。
*你複製的內容依賴於數組元素的類型:在值類型的數組,該項目本身被複制;在引用類型的數組中,引用被複制。繼續橙色的比喻,當桔子是一個參考類型時,桔子數組是一個定義桔子數組中所有桔子位置的便利貼的列表。而不是將橘子移入陣列中,而是放置一張貼有「從右側起第三個橘子」的便箋,並將桔子留在原位。複製參考對象只需複製其便箋。
+1只是爲了您的努力和美麗的分析。 – 2013-02-09 20:16:39
拷貝簡直是
array[Index+1] = array[Index]
交換是
var tmp = array[Index + 1];
array[Index+1] = arry[Index];
array[Index] = tmp;
移動也取決於你想替換以表明它現在是空的移動的項目,像
array[Index+1] = array[Index];
array[Index] = -1;
將陣列想象成堆垛托盤。事情可以在他們身上,你可以移動東西,但將東西放入一個抽屜或其他東西不會影響其他任何順序。
而不是使用數組,你可以使用一個列表
List<int> myList = new List<int>();
myList.Add(1);
myList.Add(2);
myList.Add(3);
myList.Add(4);
myList.Add(5);
會給你1,2,3,4,5。
然後調用
int temp = myList[1];
myList.RemoveAt(1);
myList.Insert(3, temp);
會給你1,3,4,2,5
- 1. Redis:將數據從索引移動到另一個
- 2. 從另一個數組索引中獲得數組值
- 3. GridView從一個索引到另一個索引
- 4. 訪問另一個數組的一個數組的索引
- 5. 數組索引中的值不對應於另一個數組的索引
- 6. PHP分配一個數組的索引到另一個陣列
- 7. 將值從一個數組移動到另一個PHP
- 8. 將一個NSOrderedSet循環移位到另一個索引
- 9. 如何將nsarray對象從一個索引切換到另一個索引
- 10. 獲取一個隨機數組的索引,然後使用相同的索引來打印另一個數組
- 11. 向量化索引另一個數組的值數組
- 12. 使用另一個數組的索引值創建一個數組
- 13. Javascript:創建一個數組,其索引是另一個數組的值
- 14. 移動/移動數組中的對象,然後將第一個元素移動到最後一個索引
- 15. Lucene性能:將字段數據從一個索引傳輸到另一個索引
- 16. 索引一個索引數組的多維numpy數組
- 17. 如何將一個NSArray的兩個不同索引中的對象存儲到另一個NSArray的索引中
- 18. 一維數組中的多個索引
- 19. 只用一個索引檢索多個數組的值
- 20. 如何將一個數組的值複製到另一個數組,其中第二個數組的索引等於第一個數組的值?
- 21. 從另一個數組中的索引獲取數組的值:Matlab
- 22. 如何在另一個數組中使用數組的索引?
- 23. 如何從另一個數組索引到張量張量流
- 24. 從一個函數移動一個值到另一個
- 25. 從一個索引提取子字符串到另一個索引
- 26. 隔離列表中的兩個索引並將其中一個索引與另一個索引進行求和?
- 27. 在賦值時不能索引到一個空數組?
- 28. 如何將數組中的項目移動到緊鄰的下一個索引?
- 29. 轉移第一個索引
- 30. 爲一個靜態鑄造索引數組做一個數組
你嘗試什麼嗎? – bas 2013-02-09 19:53:53