我有一个类似下面的代码,它通过使用以下方式拆分字符串arrayEdgeFilterRanges
来初始化数组edgeFilterRanges
:
string[] arrayEdgeFilterRanges = edgeFilterRanges.Split(new string[] {}, StringSplitOptions.RemoveEmptyEntries);
但是我需要将0
的genraral项添加到数组的第一个
我知道我不能使用arrayEdgeFilterRanges.Insert(0, "0");
,因为数组在初始化语句
您也可以告诉我如何在数组的第一个位置添加项目0
?
string edgeFilterRanges = "4,2,1";
string[] arrayEdgeFilterRanges = edgeFilterRanges.Split(new string[] {}, StringSplitOptions.RemoveEmptyEntries);
foreach (string i in arrayEdgeFilterRanges)
{
System.Console.Write(i);
}
答案 0 :(得分:2)
众多选择之一:
var arrayWithZero = Enumerable.Repeat(“0”, 1)
.Concat(array)
.ToArray();
答案 1 :(得分:0)
别介意我现在就找到一个简单的黑客攻击
edgeFilterRanges = "0,"+edgeFilterRanges;
string[] arrayEdgeFilterRanges = edgeFilterRanges.Split(new string[] {}, StringSplitOptions.RemoveEmptyEntries);
foreach (string i in arrayEdgeFilterRanges)
{
System.Console.Write(i);
}
答案 2 :(得分:0)
阵列本身在创建后无法更改,但您可以创建一个更大尺寸的新阵列,并使用Array.ConstrainedCopy()
或Array.CopyTo()
复制值。然而,这确实表现不佳。
或者,如果您只使用foreach
循环中的数组,则可以使用LINQ .Concat()
方法迭代两个单独的数组,就好像它们是一个一样。
string[] prefix = new []{"0"};
foreach (string i in prefix.Concat(arrayEdgeFilterRanges)
{ ... }
答案 3 :(得分:0)
建议简化回答:
string[] arrayEdgeFilterRanges = ("0,"+edgeFilterRanges).Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
答案 4 :(得分:0)
您可以使用Concat使用LINQ执行此操作。 使用您的代码,即:
string[] arrayEdgeFilterRanges =
new string[1] { "0" }.Concat(
inString.Split(new string[] {}, StringSplitOptions.RemoveEmptyEntries)).ToArray();
类似的解决方案here。