2011-10-28 55 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