Сделать клон экземпляра со всеми сохраненными значениями - PullRequest
0 голосов
/ 22 декабря 2019

У меня есть два класса, один из которых называется склад, а другой - склад. В настоящее время wareHouse может создавать, хранить и находить ящики в хранилище.

Но теперь мне также нужно, чтобы склад мог создавать клонированную версию wareHouseLocation со всей хранимой информацией.

   locations = new List<WareHouseLocation>();

Это список, в котором я храню всю информацию. Я хочу иметь возможность скопировать его.

Я пытался найти ответ сам и даже попробовал какой-то код, но до сих пор у меня не было ничего, что работает должным образом.

    public WareHouseLocation DeepCopy() 
    {
        foreach (WareHouseLocation  wareHouseLocation in locations)
            {
                if(wareHouseLocation == null) 
                {
                    return null;
                }
                else 
                {
                   //Need code here
                }
              }
           return null;
        }

Кодв настоящее время в классе wareHouse. Я рад за все, что может мне помочь.

    public class WareHouseLocation
    {
        public int FloorID { get; set; }
        public List<I3DStorageObject> storage = new List<I3DStorageObject>();


        public double MaxVolume;
        public double MaxWeight;

        public WareHouseLocation(double height, double width, double depth)
        {
            MaxVolume = height * width * depth;
            MaxWeight = 1000;
        }


        public bool hasAvailableVolumeForObject(I3DStorageObject s)
        {
            double currentVolume = 0;


            foreach (I3DStorageObject obj in storage)
            {
                currentVolume += obj.Volume;
            }

            double available = MaxVolume - currentVolume;


            if (s.Volume <= available)
            {
                return true;
            }
            else
            {
                return false;
            }

        }



    }

Вот код для WareHouseLocation.

1 Ответ

0 голосов
/ 22 декабря 2019

Я думаю, что вы можете использовать JsonConvert.SerializeObject и JsonConvert.DeserializeObject для копирования,

    var json = JsonConvert.SerializeObject(put_your_object_here);
    var copy = JsonConvert.DeserializeObject<your_object_type>(json);
...