Thread overview
D version of C# code
Apr 16, 2017
Joel
Apr 16, 2017
ag0aep6g
Apr 17, 2017
Joel
April 16, 2017
What would you put instead of this C# code, in D?

```C#
          // Arrange
            const string templateString = "My {pet} has {number} {ailment}.";
            var pairs = new
            {
                pet = "dog",
                number = 5,
                ailment = "fleas",
            };

            // Act
            var result = TemplateStringInterpolator.ReplaceTokens(templateString, pairs);

            // Assert
            result.Should().Be("My dog has 5 fleas.");
```

I've made a function for strings:

```D
string replaceTokens(in string tmpString, in string[string] aa) {
    import std.array : replace;

    string result = tmpString;

    foreach(key, value; aa) {
        string addBits(in string root) {
            return "{" ~ root ~ "}";
        }
        result = result.replace(addBits(key), value);
    }

    return result;
}
```

April 16, 2017
On 04/16/2017 11:20 AM, Joel wrote:
> What would you put instead of this C# code, in D?
>
> ```C#
>           // Arrange
>             const string templateString = "My {pet} has {number}
> {ailment}.";
>             var pairs = new
>             {
>                 pet = "dog",
>                 number = 5,
>                 ailment = "fleas",
>             };
>
>             // Act
>             var result =
> TemplateStringInterpolator.ReplaceTokens(templateString, pairs);
>
>             // Assert
>             result.Should().Be("My dog has 5 fleas.");
> ```

void main()
{
    // Arrange
    const string templateString = "My {pet} has {number} {ailment}.";
    auto pairs = [
        "pet": "dog",
        "number": "5",
        "ailment": "fleas",
    ];

    // Act
    import std.regex: regex, replaceAll;
    auto result = templateString
        .replaceAll!(m => pairs[m[1]])(regex(`\{([^}]+)\}`));

    // Assert
    assert(result == "My dog has 5 fleas.");
}

April 17, 2017
On Sunday, 16 April 2017 at 09:46:13 UTC, ag0aep6g wrote:
> On 04/16/2017 11:20 AM, Joel wrote:
>> [...]
>
> void main()
> {
>     // Arrange
>     const string templateString = "My {pet} has {number} {ailment}.";
>     auto pairs = [
>         "pet": "dog",
>         "number": "5",
>         "ailment": "fleas",
>     ];
>
>     // Act
>     import std.regex: regex, replaceAll;
>     auto result = templateString
>         .replaceAll!(m => pairs[m[1]])(regex(`\{([^}]+)\}`));
>
>     // Assert
>     assert(result == "My dog has 5 fleas.");
> }

Thanks, ag0aep6g.