簡體   English   中英

按名字和姓氏排序列表,然后顯示給用戶

[英]sort list by first name and last name then display to user

我試圖在控制台應用程序中使用列表存儲和顯示數據來構建聯系人管理器程序。 我需要查看一個報告,該報告顯示可用聯系人的摘要,然后有一個菜單,允許用戶與程序進行交互。 我有一種用數據和聯系人對象創建列表的方法。 我做了一個按名字排序的方法和一個按姓氏排序的方法,但是我不確定如何顯示返回給用戶的聯系人。

任何指導將不勝感激

static void Main(string[] args)
    {         
        //Declare the list

        List<Contact> contactList = new List<Contact>();

        //Main Driver
        char menuItem;
         Console.WriteLine("Contact List\n");
        menuItem = GetMenuItem();
        while (menuItem != 'Q')
        {

            ProcessMenuItem(menuItem, contactList);
            menuItem = GetMenuItem();

        }
        Console.WriteLine("\nThank you, goodbye");
        Console.ReadLine();
    }
    //Returns either a 'C', 'R', 'U', 'D', 'L', or 'X' to the caller
    static char GetMenuItem()
    {
        char menuItem;
        DisplayMenu();
        menuItem = char.ToUpper(IOConsole.GetChar("\nPlease pick an item: "));
        while (menuItem != 'C'
            && menuItem != 'R' && menuItem != 'Q' && menuItem != 'U' && menuItem != 'D' && menuItem != 'S' && menuItem != 'L' && menuItem != 'F' && menuItem != 'P' && menuItem != 'T')
        {
            Console.WriteLine("\nError - Invalid menu item");
            DisplayMenu();
            menuItem = char.ToUpper(IOConsole.GetChar("\nEnter option or M for menu:"));
        }
        return menuItem;
    }

    static void DisplayMenu()
    {
       Console.WriteLine("C-> Create Contacts");
       Console.WriteLine("R-> Remove Contacts");
       Console.WriteLine("U-> Update Contacts");
       Console.WriteLine("D -> Load data from file");
       Console.WriteLine("S-> Save data to file");
       Console.WriteLine("L-> View sorted by last name");
       Console.WriteLine("F-> View sorted by first name");
       Console.WriteLine("P-> View by partial name search");
       Console.WriteLine("T-> View by contact type");
       Console.WriteLine("Q-> Quit");
    }

    //Routes to the appropriate process routine based on the user menu choice
    static void ProcessMenuItem(Char menuItem, List<Contact> contactList)
    {
        switch (menuItem)
        {
            case 'C':
                createContact();
                break;
            case 'R':
                removeContact(contactList);
                break;
            case 'U':
                updateContact(contactList);
                break;
            case 'D':
                LoadToFile();
                break;
            case 'S':
                saveToFile();
                break;

            case 'L':
                sortByLastName(contactList);
                break;
            case 'F':
                sortByFirstName(contactList);
                   break;
            case 'P':
                   DisplayList(contactList);
                   break;
            case 'T':
                   sortByContactType();
                   break;
            case 'Q':

                   break;

        }                   
    }


//Sorts the list by last name
         public static void sortByLastName(List<Contact> contactList )
        {

          contactList.OrderBy(c => c.GetLastName);




        }
        //Sorts the list by first name
         public static void sortByFirstName(List<Contact> contactList)
        {
           contactList.OrderBy(c => c.GetFirstName);

        }

您為什么不嘗試這種方法:

contactList.Sort((x, y) => string.Compare(x.GetLastName, y.GetLastName));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM