【发布时间】:2013-07-26 01:28:52
【问题描述】:
如果我得到一个像这样的数组:
string[] test = new string[5] { "hello", "world", "test", "world", "world"};
我怎样才能从相同的字符串中创建一个新数组,“世界”是你事先知道有多少的地方,这里是 3?
我在想这样的事情:
string[] newArray = new string[3];
for (int i = 0; i < 5; i++)
{
if (test[i].Contains("world"))
{
newArray[i] = test[i];
}
}
问题出在这里:newArray[i] = test[i];
由于它是从 0 迭代到 4,所以会出现错误,因为 newArray 被限制为 3。
如何解决这个问题?
编辑:我需要它是来自测试(旧数组)的位置 1、3 和 4 应该存储在 newArray 中的 0、1 和 2。
【问题讨论】:
-
你能像输入输入一样写出你想要的输出吗?这将帮助我们(至少是我)准确了解您想要什么。
-
@CédricBignon 我希望输出类似于“newArray 包含以下字符串:世界、世界、世界”。你是这个意思吗?
-
@Erik 更像是
string[] output = new string[3] { "world", "world", "world"}。您想要什么作为以下输入{ "hello", "world", "hello", "hello", "test", "my world", "world"}的输出? -
@Erik:这正是 0 票赞成的 2 个答案从一开始就试图做的事情。不确定这是否是您真正想要的。
-
那么我想要
string[] output = new string[3] { "world", "world", "world"},因为它仍然是3个包含“世界”的字符串。谢谢。