Programming in D – Solutions

The foreach Loop

To have an associative array that works the opposite of names, the types of the key and the value must be swapped. The new associative array must be defined as of type int[string].

Iterating over the keys and the values of the original associative array while using keys as values and values as keys would populate the values table:

import std.stdio;

void main() {
    string[int] names = [ 1:"one", 7:"seven", 20:"twenty" ];

    int[string] values;

    foreach (key, value; names) {
        values[value] = key;
    }

    writeln(values["twenty"]);
}