我正在制作一个语音别名程序。我试图让它添加命令。 你基本上知道要做一个字符串数组 string mystring =" string1"," string2&#34 ;; 我怎么能像它一样添加它," string3"做到这一点 string mystring =" string1"," string2"," string3&#34 ;; 这是我的代码:
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 :(得分: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");
}