簡體   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