.NET 4.x Переменная меняется при передаче ссылки на нее - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. При передаче переменной

list

в метод

FindCards

и записи результата работы метода в переменную

cards

, переменная

list

тоже меняется и становится равна

cards

. Как вы понимаете, я так не задумывал. Почему меняется переменная

list

? Код:
ListInventory list = await Steam.GetInventory("/753/6/"); //list.rgDescriptions.Count == 5
ListInventory cards = Tools.FindCards(list); //list.rgDescriptions.Count == 1, cards.rgDescriptions.Count == 1
if (list == cards) //true
{}
FindCards:
 
        public static ListInventory FindCards(ListInventory inventory)
        {
            var list = new ListInventory();
            list = inventory;
            for (int i = 0; i < inventory.rgDescriptions.Count; i++)
            {
                if (inventory.rgDescriptions[i].type.Contains("Trading Card") == false)
                {
                    list.rgInventory.Remove(inventory.rgInventory[i]);
                    list.rgDescriptions.Remove(inventory.rgDescriptions[i]);
                    i--;
                }
            }
            return list;
        }
ListInventory:
    public class ListInventory
    {
        public bool seccess { get; set; }
        public List<ListInventoryItem> rgInventory { get; set; }
        public List<object> rgCurrency { get; set; }
        public List<ListDescriptionItem> rgDescriptions { get; set; }
        public bool more { get; set; }
        public bool more_start { get; set; }
    }

Решение задачи: «.NET 4.x Переменная меняется при передаче ссылки на нее»

textual
Листинг программы
        public ListInventory Clone()
        {
            return new ListInventory
            {
                seccess = this.seccess,
                rgDescriptions = this.rgDescriptions.Select(rgDescriptions => rgDescriptions).ToList()
            };
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы