来自现有数组的某些值的新数组

Eri*_*rik 0 c# arrays string for-loop

如果我有一个像这样的数组:

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];
            }
        }
Run Code Online (Sandbox Code Playgroud)

问题出在这里: newArray[i] = test[i];

由于它从0迭代到4,因为newArray限制为3,所以会出错.

怎么解决这个?

编辑:我需要它来自test(旧数组)位置1,3和4应该存储在newArray中的0,1和2.

Ald*_*den 5

你想使用Linq:

var newArray = test.Where(x => x.Contains("world")).ToArray();
Run Code Online (Sandbox Code Playgroud)