使用现有数组和变量初始化数组

时间:2014-07-14 19:38:44

标签: c#

我正在尝试从现有字符串和字符串数组创建字符串数组,如下所示

string[] oldArray = { "Hello", "World" };
string oldString = "test string";
string[] newArray = { oldArray, oldString };

遗憾的是,这不会像写的那样起作用,所以我一直试图想出一种非迭代的方法,用旧的元素填充newArray。我找到的唯一解决方案是使用任意字符连接,然后使用相同的方法进行拆分。

string[] arr = {"AString", "BString", "CString" }; // Passed to function
...
string arrAsString = String.Join("$", arr) + "$" + DateTime.Today.ToString("M/dd");
return arrAsString.Split('$');

但是我的测试比for循环慢得多。有没有更好的解决方案?

编辑:回答下面的答案:我没有使用List的原因是因为我在Excel中操作单元格,而我正在使用的API中的范围作为数组返回

2 个答案:

答案 0 :(得分:2)

您可以尝试使用Concat方法:

string[] newArray = oldArray.Concat(new [] { oldString }).ToArray();

或者,如果您不想要固定大小集合,请使用List<T>

答案 1 :(得分:2)

  

我找到的唯一解决方案是使用任意字符连接,然后使用相同的方法进行拆分。

请不要这样做!例如,如果您的任何字符串中包含$,则会产生意外结果。

您应该使用List<string>。它很像string[],但它的大小可变。

var myList = new List<string> { "Hello", "World" };
myList.Add("test string");