C# 不要签入存在的项目的通用列表
我想提出一个小小的保险申请。应用程序询问您的姓名,然后检查姓名是否已存在;如果它们存在,则您会收到一条消息,该名称已被使用 如果没有,那么你会被问到你想要什么保险,然后在屏幕上你会得到一条消息,说明你的名字已经正确注册 我有一个函数,它把我所有客户的名字和保险种类列为一个通用列表 我制作了一个通用列表,在我的函数中我使用foreach,这样我可以打印通用列表中的每一项,一切都很好,但是如果我在列表中添加一个人,然后我尝试返回并写下相同的名字,我不会出错 问题:为什么我没有得到一个错误?究竟是什么问题 先谢谢你 我的代码在下面:C# 不要签入存在的项目的通用列表,c#,list,C#,List,我想提出一个小小的保险申请。应用程序询问您的姓名,然后检查姓名是否已存在;如果它们存在,则您会收到一条消息,该名称已被使用 如果没有,那么你会被问到你想要什么保险,然后在屏幕上你会得到一条消息,说明你的名字已经正确注册 我有一个函数,它把我所有客户的名字和保险种类列为一个通用列表 我制作了一个通用列表,在我的函数中我使用foreach,这样我可以打印通用列表中的每一项,一切都很好,但是如果我在列表中添加一个人,然后我尝试返回并写下相同的名字,我不会出错 问题:为什么我没有得到一个错误?究竟是什么
public static List<string> klantgegevens = new List<string>();
public static void Main(string[] args)
{
retry:
string naam;
int verzekeringkeuze;
string alleklantgegevens;
Console.WriteLine("wat is u naam");
naam = Console.ReadLine();
if (klantgegevens.Contains(naam))
{
Console.WriteLine("deze naam bestaat al");
}
else
{
Console.WriteLine("kies u soort verzekering: 1-auto,2-leven,3-woning");
verzekeringkeuze = int.Parse(Console.ReadLine());
switch (verzekeringkeuze)
{
case 1:
Console.WriteLine(alleklantgegevens = $"{naam}:auto");
break;
case 2:
Console.WriteLine(alleklantgegevens = $"{naam}:leven");
break;
case 3:
Console.WriteLine(alleklantgegevens = $"{naam}:woning");
break;
default:
break;
}
Console.WriteLine($"{naam} werd correct ingeschreven");
Console.ReadLine();
alleklantgegevens = $"{naam}:{verzekeringkeuze}";
klantgegevens.Add(alleklantgegevens);
}
Printall();
goto retry;
}
public static void Printall()
{
foreach (string gegevens in klantgegevens)
{
Console.WriteLine($"alle klantgegevens:{gegevens}");
}
Console.ReadLine();
}
没有错误,因为您选中了Containsnaam而不是${naam}:{verzekeringkeuze},这是您放在列表中的内容。没有错误,因为您选中了Containsnaam而不是${naam}:{verzekeringkeuze},这是您放在列表中的内容。问题放在一边,不要使用goto-使用whiletrue循环。它会阻塞输入为什么你在Printall中有一个ReadLine?你是对的,但我习惯于这样写,因为我可以读取数据,可以看到输出,但这并不是真正需要的。我使用goto,因为我发现这是一种比编写while循环更短的方法。你说它会阻塞输入是什么意思?你能解释更多吗拜托?撇开问题不谈,不要使用转到-使用whiletrue循环。它会阻塞输入为什么在Printall中有一个读线?你是对的,但我习惯于这样写,因为我可以读取数据,可以看到输出,但这并不是真正需要的。我使用goto,因为我发现这是一种比编写while循环更短的方法。你说它会阻塞输入是什么意思?你能解释更多吗?0你是对的,但我的verzekeringskeuze是我的保险选择,我可以选择几次,但我想做的是只检查naam,但我的列表必须保存我的所有数据。我如何以这种方式解决这个问题?提前谢谢。一个选择是单独列出使用过的名称,当您将保险添加到其列表中时,也将该名称添加到其列表中。另一种方法是将整个数据表示为保险HashMap和check Map.ContainsKeynaam的名称映射。在我问这个问题之前,我做了第一个选择,但他们研究的人说我这样做不是一个好主意,因为它花费了更多内存,而且不有效,但我可以尝试第二种方法,但你能写第二种方法吗在c中,地图是一本字典,所以字典也是。添加如下内容:myDictionary[naam]=保险。检查如下:myDictionary.ContainesKeyNaam.0您有权,但我的verzekeringskeuze是我的保险选择,我可以多次选择,但我只想检查naam,但我的列表必须保存我的所有数据。我如何以这种方式解决这个问题?提前谢谢。一个选择是单独列出使用过的名称,当您将保险添加到其列表中时,也将该名称添加到其列表中。另一种方法是将整个数据表示为保险HashMap和check Map.ContainsKeynaam的名称映射。在我问这个问题之前,我做了第一个选择,但他们研究的人说我这样做不是一个好主意,因为它花费了更多内存,而且不有效,但我可以尝试第二种方法,但你能写第二种方法吗在c中,地图是一本字典,所以字典也是。添加如下内容:myDictionary[naam]=保险。检查如下:myDictionary.ContainsKeynaam。