繁体   English   中英

菜单未显示列表结果

[英]Menu not showing list results

我有运行菜单的代码,但未显示列表信息。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Teste_Menu
{
    class Program
    {
        static void Main(string[] args)
        {
            Menu();
            List<Modelo> ListaModelo = new List<Modelo>();
            ListaModelo.Add(new Modelo("Honda", "Civic", 180, 29000));
            ListaModelo.Add(new Modelo("Honda", "Jazz", 100, 15000));
            ListaModelo.Add(new Modelo("Honda", "HRV", 115, 22500));



        }

        static void Menu()
        {
            string escolha;

            do
            {
                Console.Clear();
                Console.ForegroundColor = ConsoleColor.Magenta;

                Console.WriteLine("\n");
                Console.WriteLine(" ==================================================================================================== ");
                Console.WriteLine(" =========================================== Carros ================================================= ");
                Console.WriteLine(" ==================================================================================================== \n\n");
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine(" * Consultar Lista de Carros -----------------------------------------------> (1)\n  ");


                escolha = Console.ReadLine();

                switch (escolha)
                {
                    case "1": ListaModelo();
                    break;
                }
                Console.ReadLine();

        }
        while (escolha != "2");
        }

        static void ListaModelo()
        {
             {
                 var ListaModelo = new List<int>(Enumerable.Range(0, 3));

                 ListaModelo.ForEach(Console.WriteLine);
             }
        }

    }
}

我的问题是,当我按数字1时,菜单没有显示汽车列表。 它只是打印:

1
2
3
4

而且没有名字。 我在这里做错了什么?

您在方法ListaModelo创建一个名为ListaModelo全新列表,该列表仅填充数字。 尽管它具有相同的名称,但它与您在此行的Main方法中实例化的列表不同,它是相同的:

List<Modelo> ListaModelo = new List<Modelo>();

解决问题的方法之一是将List的声明放在Main方法之外,并将其设置为static

class Program
{

    public static List<Modelo> ListaModelo = new List<Modelo>();

    static void Main(string[] args)
    {

并删除ListaModelo()方法中的行:

var ListaModelo = new List<int>(Enumerable.Range(0, 3));

为了获得有意义的输出,您需要重写Modelo类中的ToString方法。 因此,它将显示您希望看到的所有属性。 将此方法插入您的Modelo类:

public override string ToString()
{
    return String.Format("{0} {1} {2} {3}", yourProperty1, yourProperty2, yourProperty3, yourProperty4);
}

另外,请确保要打印的方法的名称与List ListaModelo的名称不同。

最后一点! 在显示“ Menu之前,您需要在汽车上填写清单,否则该Menu将为空! 只需将订单切换为:

List<Modelo> ListaModelo = new List<Modelo>();
ListaModelo.Add(new Modelo("Honda", "Civic", 180, 29000));
ListaModelo.Add(new Modelo("Honda", "Jazz", 100, 15000));
ListaModelo.Add(new Modelo("Honda", "HRV", 115, 22500));

Menu();
  1. 如果要编写汽车清单,则在Menu函数中应该有一个参数:

    静态void菜单(列表参数)

    1. 在ListaModelo同样的问题中,您应该将List作为参数:

    2. 然后,您可以具有这样的ListaModelo函数:

      静态void ListaModelo(List param){

        param.ForEach(x=> Console.WriteLine(x.Name)); } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM