将字符串数组分成多个小数组

4

如何将一个数组分成更小的数组?

string[] str = new string[145]

我需要两个数组来完成这个任务,就像这样:
string[] str1 = new string[99];
string[] str2 = new string[46];

我该如何从str的源代码中做到这一点?

1- 然后我想将数组全部组合成一个列表,但只有添加项?没有添加多个项?或者其他任何使字符串[145]数组再次成为可能的方法。


最简单的解决方案是使用 foreach() 或 for(),或者您想使用 LINQ? - Mohnkuchenzentrale
3个回答

10

使用LINQ最简单的方式:

string[] str1 = str.Take(99).ToArray();
string[] str2 = str.Skip(99).ToArray();

重新组装它们:

str = str1.Concat(str2).ToArray();

这些方法并不是非常高效,但它们非常简单 :) 如果需要更高的效率,Array.Copy 可能是更好的选择... 但需要花费一点点额外的努力。


不错,我没想到那个 :) - Mohnkuchenzentrale

4
你可以使用 Array.Copy 方法将源数组中的某些项复制到另一个数组中。
string[] str1 = new string[99];
string[] str2 = new string[46];
Array.Copy(str, 0, str1, 0, 99);
Array.Copy(str, 99, str2, 0, 46);

您可以使用相同的方法将它们复制回去。

这是答案,因为我们这里没有LINQ。 - Bilgin Kılıç

0

要创建一个列表,请使用 List<T>.AddRange 方法:

var array = new string[145];
var list = new List<string>();
list.AddRange(array);

请注意,这只回答了第二个问题。不是关于将数组分成两个较小数组的第一个问题。 - RvdK
@PoweRoy:那是因为第一部分已经有答案了! - Will Vousden

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接