首页 > 解决方案 > 对于每个循环仅适用于我的一种方法,尽管一个非常相似的方法按预期工作

问题描述

我的目标是在我的方法中使用 foreach 循环打印出列表的内容,我希望能够为多个列表执行此操作。预计当我调用该方法时,它只是通过 foreach 循环运行并打印出列表中的内容。当我尝试运行它时会发生什么,该方法忽略了 foreach 循环。

我尝试将 foreach 循环放在另一种方法中,它工作正常,但由于某种原因,当我把它放在另一个方法中时它不起作用。

这是被忽略的 foreach 循环,不会向控制台打印任何内容。

        public void GetHouse()
        {
            foreach (var item in this.HouseList)
            {
                Console.WriteLine($"Address: {item.Address}, Post code: {item.Postcode}, House Description: {item.HouseDescription}");
            }
        }

这是当我尝试将它放在另一种方法中时,它可以正常工作,它可以完美地打印出细节。

        public void CreateHouse(AccountInteractions houseInteractions, AccountInteractions accountInteractions)
        {
            house = new House();
            house.ReadHouse(accountInteractions);
            houseInteractions.AddHouse(house);
            Console.WriteLine($"{house.Address} successfully put up for sale.");
            Console.WriteLine();
            foreach (var item in this.HouseList)
            {
                Console.WriteLine($"Address: {item.Address}, Post code: {item.Postcode}, House Description: {item.HouseDescription}");
            }
        }

此处的代码执行相同的概念,但它可以工作并打印出列表的详细信息。我不明白的是,我在这两种方法中都有相同的系统,但是只有其中一种可以工作,除了列表之外,代码之间没有明显的区别。

        public void GetAccounts()
        {
            foreach (var item in this.AccountList)
            {
                Console.WriteLine($"Name: {item.Username}, Email: {item.UserEmail}, Password: {item.UserPassword}");
            }
        }

这两个列表都是使用以下方法在同一类中创建的。

        public List<Account> AccountList { get; set; } = new List<Account>();
        public List<House> HouseList { get; set; } = new List<House>();

我看不到任何可能导致问题的东西,它们的创建方式完全相同,为什么其中一个不起作用?

标签: c#

解决方案


推荐阅读