2017-02-20 60 views
2

即時通訊製作語音別名程序。我試圖讓它添加命令。 你基本上知道要做一串你想要的字符串 string mystring =「string1」,「string2」; 我怎麼能夠像「string3」那樣添加它 string mystring =「string1」,「string2」,「string3」; 這裏是我的代碼:C#將字符串加在一起

List<string> myCollection = new List<string>(); 
      myCollection.Add("hello"); 
      myCollection.Add("test"); 
      string final = string.Join(",", myCollection.ToArray()); 
      richTextBox1.AppendText(final); 
      sp.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(new String[] { "" + final })))); 
+0

你遇到的問題是什麼? – CodingYoshi

+0

@CodingYoshi當我這樣做時,我沒有得到2 seprete字符串。我得到1個字符串,例如hello,test –

+0

您應該閱讀[問],然後根據[問]頁面編輯您的問題,以便更清楚地理解。 – Enigmativity

回答

3

你調用API需要string陣列。如果您知道您將傳遞多少個字符串,請不要使用List<string>。這將幫助您避免必須將List<string>轉換爲string[]。這是它是如何工作的:

var myCollection = new string[2]; 
myCollection[0] = "hello"; 
myCollection[1] = "test"; 
sp.LoadGrammar(new Grammar(new GrammarBuilder(myCollection))); 

如果你不知道你有多少串路過然後用List<string>這樣的:

var myCollection = new List<string>(); 
myCollection.Add("hello"); 
myCollection.Add("test"); 

然後,你需要一個List<string>轉換爲string[] ,只需撥打ToArray<string>()在您的收藏這樣的:

var myCollectionAsArray = myCollection.ToArray(); 
sp.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(myCollectionAsArray)))); 

如果你知道你會經過多少條琴絃,你是什麼意思?

如果您正在檢查某些動態條件(僅在運行時已知的條件)才能將項添加到選項集合中,那麼您將需要一個List<string>。例如:

var myCollection = new List<string>(); 

myCollection.Add("hello"); 
if (someCondition) 
{ 
    // this will only be known at runtime 
    myCollection.Add("test"); 
} 
+0

謝謝!奇蹟般有效! –