www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - D version of C# code

reply Joel <joelcnz gmail.com> writes:
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;
}
```
Apr 16
parent reply ag0aep6g <anonymous example.com> writes:
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."); }
Apr 16
parent Joel <joelcnz gmail.com> writes:
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.
Apr 16