2011-10-28 44 views
1

是否有可能接受多个作为变量的变量,然后将其更改为数组!例如,用户可以输入多个名称,但是没有定义他们应该输入多少个名字,并且当我收到名字时,我会将其更改为一个数组,这有可能吗?在C中使用数组时混淆#

谢谢!

+1

如何将用户输入的名字? –

+1

你是指“接受多个实体,作为变量”是什么意思?您的数据条目是否需要显示动态数量的输入字段,或者您是否想要将来自一个字段的任意输入拆分为多个变量(例如,通过逗号或其他方式进行分割)?最终,您的结果可以存储在列表或一个固定长度的数组(一旦知道了多少元素就可以创建)。 –

+0

@MiguelAngelo例如,提示应用程序要求用户输入他们最喜欢的歌曲名称。 – 0bserver07

回答

10

在.NET数组中有固定的长度。如果你想能够动态添加元素到列表中,你可以使用List<T>类。

例如:

List<string> names = new List<string>(); 

现在你可以开始将元素添加到列表:

names.Add("foo"); 
names.Add("bar"); 
names.Add("baz"); 

而且你还可以得到使用相应的固定长度数组的ToArray()方法:

string[] namesArray = names.ToArray(); 
+2

如果你确实需要一个数组,使用List的ToArray()方法。 – Frank

+0

感谢Darin,这是一个非常有趣的方法! – 0bserver07

+0

晚会,但ToArray()不是List的方法,而是'IEnumerable '的扩展方法,其中'List '实现。 –

0

如果用户要输入多个名字,那么我建议你创建一个字符串列表而不是一个数组。

+0

我也考虑过这个问题,但是我的这位教授不想使用他没有涉及的东西!至少他想在其他学生的技能上公平!再次感谢! – 0bserver07

2

我认为你要找的是param object []。它被用于一个未定数量或参数的功能。你的函数将是这样的:

public static void SayHello(params string[] names){ 
    foreach(var name in names){ 
     Console.WriteLine("Hello " + name); 
    } 
} 

而且你可以这样调用它:

SayHello("Bob", "Bill", "Susan"); 
SayHello("Jenny"); 
+0

这就是我的意思!谢了哥们! – 0bserver07

+0

@ Soap141,太好了,然后继续,并将其标记为您的答案。 – Daryl