Sharing objects in an array - C #

In C #, I have an Array from MenuItem. I am trying to swap two objects at index 2 and index 3 of an array without success using the following code:

MenuItem Temp = Items[2];  
Items[2] = Items[3];  
Items[3] = Temp;  

There must be a reason why the second and third lines do not work in C #, which I still can not understand. Can anyone clarify this a bit more? Should I go deeper and change each property in objects individually?

Edited - Sorry. Looks like I messed up the code, trying to clear it up for publication. Fixed now.

Actual code:

MenuItem TempButton = MenuItems.Items[SelectedButton.CountId];  
MenuItems.Items[SelectedButton.CountId] = MenuItems.Items[SelectedButton.CountId + 1];  
MenuItems.Items[SelectedButton.CountId + 1] = TempButton;  

MenuItems.Items is an array of MenuItem

Looking at the clock that I posted on MenuItems.Items, nothing happens on Line 2 or 3.

The property MenuItems.Itemshas get and set functions that can cause a problem ... Next it explores ...

+3
8

Items[2] Temp, Items[2], . , SelectedButton.CountId.

2 3, :

Item Temp = Items[2];
Items[2] = Items[3];
Items[3] = Temp;
+3

SelectedButton.CountId= 2? , :

Item Temp = MenuItems.Items[2];  
MenuItems.Items[SelectedButton.CountId] = MenuItems.Items[3];  
MenuItems.Items[3] = Temp;  

, 3.

:

Item Temp = MenuItems.Items[SelectedButton.CountId];  
MenuItems.Items[SelectedButton.CountId] = MenuItems.Items[3];  
MenuItems.Items[3] = Temp;  
+1

, SelectedButton.CountId , Temp , . MenuItems.Items Items.

string[] items = { "one", "two", "three" };
string temp = items[1]; // temp = "two"
items[1] = items[2]; // items[1] = "three"
items[2] = temp; // items[2] = "two"

// items is now
// { "one", "three", "two" }
+1

:

Item Temp = Items[SelectedButton.CountId];   
Items[SelectedButton.CountId] = MenuItems.Items[SelectedButton.CountId+1];   
Items[SelectedButton.CountId+1] = Temp;  

+1

, , DataRow.ItemArray. , Items .

, , , , , (, int, double ..). , 2, :

row.ItemArray[2] = "New Value";

, 2 " ", . , :

object[] items = row.ItemArray;
items[2] = "New Value";
row.ItemArray = items;

, ( : ). , , , , , .

, , , (), . , , Items , .

+1

, , WPF-TreeView . , , .

    private void MoveLayerUp()
    {
        if(Layers.SelectedItem != null)
        {
            int index = Layers.Items.IndexOf(Layers.SelectedItem);
            if (index > 0)
            {
                var swap = Layers.Items[index - 1];
                Layers.Items.RemoveAt(index - 1);
                Layers.Items.Insert(index, swap);
            }
        }
    }

    private void MoveLayerDown()
    {
        if (Layers.SelectedItem != null)
        {
            int index = Layers.Items.IndexOf(Layers.SelectedItem);
            if (index < Layers.Items.Count-1)
            {
                var swap = Layers.Items[index + 1];
                Layers.Items.RemoveAt(index + 1);
                Layers.Items.Insert(index, swap);
            }
        }
    }

. , , , , .

0

. . ,

MenuItem Temp = Items[2];  // Temp shows Items[2]. 
Items[2] = Items[3];  //Items[2] shows Items[3] so Temp shows Items[3].
Items[3] = Temp; // so Items[3] shows itself.

, .

MenuItem Temp01 = new MenuItem();
Temp01.CopyTo(Items[2]); //Copy the values. It will be also with Constructor.
MenuItem Temp02=new MenuItem();
Temp02.CopyTo(Items[3]);
Items[2] =Temp02;
Items[3]=Temp01;
0

. , .

MenuItems.Items - get/set, / ArrayList.

MenuItems, ArrayList. ( , , , , .)

.

-1

Source: https://habr.com/ru/post/1762576/


All Articles