/// <summary> /// "key=value"形式の定義を読んでObjectDictionaryを作る。 /// キー並べ替え関数指定版。 /// </summary> public static ObjectDictionary FromString(string str, IComparer <string> cmp) { ObjectDictionary dict = new ObjectDictionary(cmp); dict.Set(str); return(dict); }
/// <summary> /// オブジェクトのフィールドとその値からObjectDictionaryを作る。 /// キー並べ替え関数指定版。 /// </summary> public static ObjectDictionary FromObjectFields(object obj, IComparer <string> cmp) { ObjectDictionary dict = new ObjectDictionary(cmp); if (obj == null) { return(dict); } dict.SetObjectFields(obj); return(dict); }
public static int Main(string[] args) { ObjectDictionary dict = new ObjectDictionary(); dict["abc"] = "hello"; dict["def"] = 3; TestClass tc = new TestClass(); tc.IntNumber = 2; tc.DoubleNumber = 3.14; tc.StringField = "a long time ago"; tc.StringList = new string[] { "uno", "dos", "tres" }; dict["testclass"] = tc; List <TestClass> list = new List <TestClass>(); for (int i = 0; i < 10; i++) { tc = new TestClass(); tc.IntNumber = i; tc.DoubleNumber = (double)i / 3.0; tc.StringField = String.Format("Number#{0}", i); tc.StringList = new string[8]; for (int j = 0; j < tc.StringList.Length; j++) { tc.StringList[j] = String.Format("Number#{0}-{1}", i, j); } list.Add(tc); } dict["list"] = list; Console.WriteLine("abc={0}", dict.Get("abc")); Console.WriteLine("def={0}", dict["def"]); tc = (TestClass)dict["testclass"]; Console.WriteLine("tc: {0}, {1}, {2}, {3}", tc.IntNumber, tc.DoubleNumber, tc.StringField, tc.IntNumber2); tc = (TestClass)dict.GetObject("testclass"); Console.WriteLine("tc: {0}, {1}, {2}, {3}", tc.IntNumber, tc.DoubleNumber, tc.StringField, tc.IntNumber2); Console.WriteLine("testclass.StringList[1] = {0}", dict.GetObject("testclass.StringList[1]")); Console.WriteLine("list[3].StringList[5] = {0}", dict.GetObject("list[3].StringList[5]")); Console.WriteLine("list[def].StringList[5] = {0}", dict.GetObject("list[def].StringList[5]")); Console.WriteLine("list[testclass.IntNumber2].StringList[5] = {0}", dict.GetObject("list[testclass.IntNumber2].StringList[5]")); Console.WriteLine("list[list[6].IntNumber].StringList[5] = {0}", dict.GetObject("list[list[6].IntNumber].StringList[5]")); Console.WriteLine("'hogehoge' = {0}", dict.GetObject("'hogehoge'")); Console.WriteLine("3.14 = {0}", dict.GetObject("3.14")); return(0); }
/// <summary> /// コピーコンストラクタ /// </summary> public ObjectDictionary(ObjectDictionary src) : base(src, src.Comparer) { }