/DynamicDictionary

C# DynamicDictionary based on Nancy.DynamicDictionary, but with a twist

Primary LanguageC#MIT LicenseMIT

DynamicDictionary

DynamicDictionary is a Dictionary written in C# that support multiple types, and where every value as potencial to be an IEnumerable of self. It is based on DynamicDictionary implementation from Nancy

Main Features

Support multiple types

using Dynamic;

DynamicDictionary artist = new DynamicDictionary();
artist["Name"] = "Pink Floyd";
artist["Started"] = new DateTime(1965, 12, 1);

It's Dynamic

dynamic dyn = artist;

dyn.Genres = "Rock";

string name = dyn.name;
// name = "Pink Floyd"

Every type could be IEnumerable

dyn.genres.AddRange(new []{"Psycadelic Rock", "Art Rock"});

string genre = dyn.genres;
//genre = "Rock"

List<string> genres = dyn.genres;
//genres = {"Rock", "Psycadelic Rock", "Art Rock"}

string otherGenre = dyn.genres[2];
//otherGenre = "Art Rock"

Custom operators support

dyn.genres += "Progressive Rock";
//{"Rock", "Psycadelic Rock", "Art Rock", "Progressive Rock"}

dyn.genres -= "Art Rock";
//{"Rock", "Psycadelic Rock", "Progressive Rock"}

Easily serialized

var jsonString = JsonConvert.SerializeObject(dyn.ToSerializableDictionary());

//and

string serializable = JsonConvert.DeserializeObject<Dictionary<string, DynamicListValueSerializable>>(jsonString);
DynamicDictionary dictionary = DynamicDictionary.FromSerializable(serializable);