如何在数组前插入元素?

时间:2017-03-22 22:40:27

标签: arrays d

O想要迭代throw数组,如果数组的元素以所需的值开头,则在它之前插入另一个值。

import std.stdio;
import std.container;
import std.algorithm;
import std.array;

void main()
{
    string [] str = ["aa","bb","cc","dd"];
    foreach(s;str)
    {
        if(s.canFind("bb"))
        {
            s.array.insertBefore('x');
        }
    }
}

我收到错误:Error: no property 'insertBefore' for type 'dchar[]'

1 个答案:

答案 0 :(得分:1)

总结Adam的建议和本地化导入,我们得到一个有效的例子:

void main()
{
    import std.stdio;
    import std.algorithm;

    string [] str = ["aa","bb","cc","dd"];
    foreach(ref s;str)
    {
        if(s.canFind("bb"))
        {
            s = 'x'~s;
        }
    }
    writeln(str);
}

我还推荐更多功能风格:

void main()
{
    import std.stdio;
    import std.algorithm;

    string [] str = ["aa","bb","cc","dd"];

    writeln(str.map!(s => s.canFind("bb")?'x'~s:s));
}