C# 在C语言中向字符串数组添加值

C# 在C语言中向字符串数组添加值,c#,arrays,sorting,console-application,C#,Arrays,Sorting,Console Application,我正在制作日历。我想在这里向会议添加成员。在每个名字之后,我想按enter键添加它。例如,当我按下X时,我想离开添加成员流程,进入下一步,例如,添加会议标题 如何将成员添加到阵列中?输入完姓名后,如何进入下一步?此代码不起作用: Console.Write("Enter members here: "); memberList = Console.ReadLine(); string[] memberList; 假设用户类型如下:Jake、Julia、Craig string[] membe

我正在制作日历。我想在这里向会议添加成员。在每个名字之后,我想按enter键添加它。例如,当我按下X时,我想离开添加成员流程,进入下一步,例如,添加会议标题

如何将成员添加到阵列中?输入完姓名后,如何进入下一步?此代码不起作用:

Console.Write("Enter members here: ");
memberList = Console.ReadLine();

string[] memberList;

假设用户类型如下:Jake、Julia、Craig

string[] memberlist = Console.ReadLine().Split(',');
最终你需要对每个名字进行修剪,因为逗号后面有空格


编辑:有关多行解决方案,请查看@Jeff Bridgman post。

假设用户类型如下:Jake、Julia、Craig

string[] memberlist = Console.ReadLine().Split(',');
最终你需要对每个名字进行修剪,因为逗号后面有空格


编辑:对于多行解决方案,请查看@Jeff Bridgman post。

您需要使用条件循环来完成此操作,而while循环将非常有效

另外,在这种情况下使用列表会更好,因为我需要向它添加一些东西,并且我不知道在第一次声明数组时数组的大小,因为你不知道用户将输入多少个名称

比如:

var names = new List<string>();
var input = Console.ReadLine();

while (input.ToUpper() != "X")
{
    names.Add(input);
    input = Console.ReadLine();
}


foreach (var name in names)
{
    Console.WriteLine(name);
}

如果您想在用户按X键后立即进入下一步,而不必按Enter键,您可以研究使用,但这将更加复杂,因为您必须一次收集一个字符以获取名称,并检查他们是否按了Enter键,在这种情况下,您将进入下一个名称。当X只是某人名字的一部分,例如Xavier,或者是否打算继续下一步时,也存在着已知的复杂性。

您需要使用条件循环来完成这一点,而while循环将非常有效

另外,在这种情况下使用列表会更好,因为我需要向它添加一些东西,并且我不知道在第一次声明数组时数组的大小,因为你不知道用户将输入多少个名称

比如:

var names = new List<string>();
var input = Console.ReadLine();

while (input.ToUpper() != "X")
{
    names.Add(input);
    input = Console.ReadLine();
}


foreach (var name in names)
{
    Console.WriteLine(name);
}


如果您想在用户按X键后立即进入下一步,而不必按Enter键,您可以研究使用,但这将更加复杂,因为您必须一次收集一个字符以获取名称,并检查他们是否按了Enter键,在这种情况下,您将进入下一个名称。当X只是某人姓名的一部分,例如Xavier,或者是否打算进入下一步时,也存在着已知的复杂性。

您的代码显示了一个控制台应用程序,但您所说的是单击一个按钮。。。这是GUI还是控制台应用程序?控制台。“按回车键”是指键盘按钮。我不知道这是如何工作的,所以这是唯一合乎逻辑的解决方案。当我按下f.e.按钮X时,我想离开添加成员过程-那么,如果用户想添加名为X的成员,您希望发生什么?当按下Ctrl+X时将其退出。最近有人问过这个问题。在这里,如果用户只点击回车键,即如果他们试图添加一个空名字的成员,则停止添加成员会更为传统。您的代码显示一个控制台应用程序,但您所说的是单击一个按钮。。。这是GUI还是控制台应用程序?控制台。“按回车键”是指键盘按钮。我不知道这是如何工作的,所以这是唯一合乎逻辑的解决方案。当我按下f.e.按钮X时,我想离开添加成员过程-那么,如果用户想添加名为X的成员,您希望发生什么?当按下Ctrl+X时将其退出。最近有人问过这个问题。在这里,如果用户只是点击回车键,即如果他们试图添加一个空名字的成员,那么停止添加成员会更为传统。这看起来就像我所设想的答案。如果您想要动态分配,而不是数组想要控制台,请使用列表;上面写着System.Collections.Generic.List 1[System.String]@user5462581我已经更新了我的答案,以显示您是如何遍历名称列表的。不幸的是,我认为Console.WriteLine调用的列表类型上的ToString方法没有显示列表中的内容。如果List.ToString可以对其每个元素调用ToString,那就太好了,不是吗非常感谢你!你帮了大忙。这看起来像是我设想的答案。如果您想要动态分配,而不是数组想要控制台,请使用列表;上面写着System.Collections.Generic.List 1[System.String]@user5462581我已经更新了我的答案,以显示您是如何遍历名称列表的。不幸的是,我认为Console.WriteLine调用的列表类型上的ToString方法没有显示列表中的内容。如果List.ToString可以对其每个元素调用ToString,那就太好了,不是吗非常感谢你!你帮了大忙,我看不出有任何迹象表明OP想要t
o使用逗号分隔的姓名列表。是的,我现在也看到了。链接到@Jeff Bridgman解决方案。虽然没有任何东西反对逗号分隔的输入。我看不到OP想要使用逗号分隔的名称列表的迹象。是的,现在也看到了。链接到@Jeff Bridgman解决方案。尽管没有任何东西反对逗号分隔的输入。