【问题标题】:How to add increasing numbers in front of a list items/objects when outputting them?输出列表项/对象时如何在列表项/对象前面添加增加的数字?
【发布时间】:2020-12-17 13:15:10
【问题描述】:

我有一个对象列表。我现在想把列表放在前面,但也要像这样在前面添加数字......

1] 项[0]

2] 项目[1]

3] 项目[2]

我有这个功能

        private void ListAnimals()
        {
            foreach (var pet in _petslist)
            {
                Console.WriteLine(pet);
            }
        }

然后我像这样调用那个函数

 public void Play()
        {
            Console.WriteLine("You have these pets in your list...");
            ListAnimals();
            Console.WriteLine("Which pet would you like to play with?");
            string input = Console.ReadLine().ToLower();

            switch (input)
            {
                case "pet1":
                    _petslist[0].Interact();
                    break;

                case "pet2":
                    _petslist[1].Interact();
                    break;

                case "pet3":
                    _petslist[2].Interact();
                    break;

                default:
                    Console.WriteLine("You do not own that pet, please try again");
                    break;
            }
        }

我的问题,我可以在我的 ListAnimals() 函数中以某种方式在列表项前面显示数字,以便我可以在 switch 语句中使用该数字而不是实际的宠物名称吗?我试图在我的动物类中覆盖 ToString(),我尝试过填充,还尝试添加一个数字数组并使用 for 循环输出数组中的数字并列出彼此靠近的项目。

【问题讨论】:

  • 要么使用for循环而不是foreach来获取列表索引,要么使用foreach ((i, pet) in petslist.Select(var (i, pet) => (i, pet))。然后Console.WriteLine($"{i + 1}] {pet}");

标签: c# list oop


【解决方案1】:

代替

foreach (var pet in _petslist)
{
    Console.WriteLine(pet);
}

for (int i = 0; i < _petslist.Count; i++)
{
    var pet = _petslist[i];
    Console.WriteLine($"{i + 1}] {pet}");
}

另外,您应该将整数值读入input,然后直接使用它,而不是之后的switch 语句:

_petslist[input - 1].Interact();

【讨论】:

    【解决方案2】:

    如果您使用for 循环,您可以轻松显示数字:

    private void ListAnimals()
    {
        for (var i = 0; i < _petslist.Count; i++)
        {
            Console.WriteLine(i + 1 + "] " + _petslist[i]);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-16
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多