Как создать ассоциативный массив из диапазона в D

Допустим, у меня есть массив типа Record[], и я хочу создать из него ассоциативный массив с ключом rec.key. Есть ли простой способ сделать это?


person Danol    schedule 08.03.2018    source источник


Ответы (1)


Да, вы можете использовать библиотеки std.array, std.typecons и std.algorithm и создать этот однострочный код:

Record[Key] assocArray = array.map!( item => tuple( item.key, item ) ).assocArray;

Он берет array, сопоставляет его с кортежем (Key, Record), а затем берет этот список кортежей и создает из него ассоциативный массив.

person Danol    schedule 08.03.2018