gpt4 book ai didi

c# - 从列表中删除用户选择的项目

转载 作者:太空狗 更新时间:2023-10-29 23:06:34 25 4
gpt4 key购买 nike

我正在尝试在控制台应用程序中构建联系人管理器程序,使用列表来存储和显示数据。我需要查看显示可用联系人摘要的报告,然后有一个菜单允许用户与程序进行交互。我有一个创建联系人和联系人对象的方法。我还有一种删除联系人的方法,但我希望用户能够选择联系人姓名并能够删除所选联系人。但是我不确定该怎么做。

如有任何指导,我们将不胜感激。

    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':
LoadFromFile();
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;

}
}
//allows the user to remove a contact
public static void removeContact(List<Contact> contactList)
{

for (int i = 0; i < contactList.Count; i++)
if (i % 5 == 0)
contactList.RemoveAt(i);

}

最佳答案

您可以使用 LINQ 或 Lambda 表达式轻松完成:

在联系人的模型类中,创建一个字段表示电话号码本身。

同时选择联系人中的两个参数

removeContact(List<Contact> contactList,int selectedContactPhoneNo)

然后你可以简单地做:

contactList.RemoveAll(x => x.PhoneNo == selectedContactPhoneNo);

关于c# - 从列表中删除用户选择的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31691371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com