C#一起添加字符串

时间:2017-02-20 01:49:04

标签: c#

我正在制作一个语音别名程序。我试图让它添加命令。 你基本上知道要做一个字符串数组 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 }))));

1 个答案:

答案 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");
}