我的数组有问题。
我的数组名称word[3]
有3个项目。
word[0] = "Listen Repeat"
word[1] = "Tune"
word[2] = "Landing Page"
我希望words[0]
拆分新的两个项目并添加到数组中的现有项目。
words = Regex.Split(words[0], @"\s{1,}").Where(x => !string.IsNullOrEmpty(x)).ToArray();
所以,我的数组变得像:
word[0] = "Listen"
word[1] = "Repeat"
但我希望我的数组像:
word[0] = "Listen"
word[1] = "Repeat"
word[2] = "Tune"
word[3] = "Landing Page"
注意: 如果使用添加两个数组,则此数组不排序。 您可以在数组中看到我的下一个项目:
word[0] = "Listen"
要
word[1] = "Repeat"
要
word[2] = "Tune"
要
word[3] = "Langding Page"
如果我使用AddRange
,则会:
这
word[0] = "Listen"
要
word[1] = "Tune"
要
word[2] = "Langding Page"
要
word[3] = "Repeat"
此代码将删除存在的项目并创建包含两个项目的新数组。 我不知道如何添加存在的数组。
我尝试Append
,但没有成功。
答案 0 :(得分:2)
您可以通过linq进行操作并使用SelectMany
var word = new string[3];
word[0] = "Listen Repeat";
word[1] = "Tune";
word[2] = "Landing Page";
word = word.SelectMany(x => Regex.Split(x, @"\s{1,}").Where(x => !string.IsNullOrEmpty(x))).ToArray();
如果您只想分割特定项目,则可以使用此功能。
public static string[] SplitItem(string[] input, int index)
{
var l = new List<string>(input.Length);
l.AddRange(input.Take(index));
l.AddRange(Regex.Split(input[index], @"\s{1,}").Where(y => !string.IsNullOrEmpty(y)));
l.AddRange(input.Skip(index + 1).TakeWhile(x => true));
return l.ToArray();
}
var word = new string[3];
word[0] = "Listen Repeat";
word[1] = "Tune";
word[2] = "Landing Page";
word = SplitItem(word,0);