我今天的问题是从现有阵列创建阵列。 我的父母"数组包含两个字符的元素。 我的新数组元素应包含来自" parent"的20个元素。阵列。
示例:的
<?xml version="1.0" encoding="UTF-8"?>
答案 0 :(得分:1)
听起来好像一个简单的LINQ语句可以满足你的需要:
var myArr = parent.Take(20).ToArray();
这将选择parent
- 数组的20个第一个元素。
编辑:要对parent
中的所有元素执行此操作,请将其条目循环:
List<string> result= new List<string>();
while(parent.Any()) {
result.Add(String.Join("", parent.Take(20).ToArray());
parent = parent.Skip(20).ToArray();
}
最后使用result.ToArray
将列表转换回数组。
答案 1 :(得分:1)
使用枚举的一些扩展功能,你可以在这里走很长的路。
Skip
此函数遍历数组,获取20个元素(如果没有剩下20个元素,则更少),并将它们合并为一个字符串,并将该字符串添加到列表中。我使用String.Join
方法来连接字符串。这很好用。
Take
函数和IEnumerable
函数是childArray
的扩展函数,并按照他们的意思行事。
编辑:我确实假设您的源数组较长,并且可能包含多个需要移动到parentArray
的20个元素的块
EDIT2:如果您的var builder = new Text.StringBuilder();
List<string> result = new List<string>();
for (int cursor = 0; cursor < parentArray.Length; cursor++)
{
if (builder.Length > 0 && (cursor % 20) == 0)
{
result.Add(builder.ToString());
builder.Length = 0;
}
builder.Append(parentArray[cursor]);
}
/* At this point you can choose to add the remaining elements to the list or not. */
if (builder.Length > 0)
{
result.Add(builder.ToString());
}
string[] childArray = result.ToArray();
中有大量值,您可能希望采用不同的方式,以获得更多性能。在这种情况下,我建议使用StringBuilder
。
{{1}}
答案 2 :(得分:0)
您可以在父数组上创建for循环,并将数组内的元素添加到如下字符串中
String str="";
for (int i=0;i<count(parent);i++){
str+=parent[i].tostring();
}
然后创建一个新的字符串数组并在第一个索引处放入str变量... 希望这可以帮助你,如果这是你要求的。