今天自己寫了一個KeyValue類,主要是封裝KeyValuePair,簡化KeyValuePair的初始化和賦值方法,用起來更簡單些:)
1 public class KeyValue 2 { 3 /// <summary> 4 /// 內部鍵值對象 5 /// </summary> 6 private KeyValuePair<object, object> obj = new KeyValuePair<object, object>(); 7 8 /// <summary> 9 /// 返回數據 10 /// </summary> 11 public Object Data { get; set; } 12 13 /// <summary> 14 /// 鍵 15 /// </summary> 16 public Object Key 17 { 18 get { return obj.Key; } 19 set { obj = new KeyValuePair<object, object>(value, obj.Value); } 20 } 21 22 /// <summary> 23 /// 值 24 /// </summary> 25 public Object Value 26 { 27 get { return obj.Value; } 28 set { obj = new KeyValuePair<object, object>(obj.Key, value); } 29 } 30 31 /// <summary> 32 /// 設置鍵值 33 /// </summary> 34 /// <param name="key"></param> 35 /// <param name="value"></param> 36 public void SetKeyValue(Object key, Object value) { obj = new KeyValuePair<object, object>(key, value); } 37 public void SetKeyValue(Object key, Object value, Object data) 38 { 39 obj = new KeyValuePair<object, object>(key, value); 40 this.Data = data; 41 } 42 43 /// <summary> 44 /// 初始化鍵值對象 45 /// </summary> 46 /// <param name="key"></param> 47 /// <param name="value"></param> 48 public KeyValue(object key, object value) { SetKeyValue(key, value); } 49 public KeyValue(object key, object value, object data) { SetKeyValue(key, value, data); } 50 51 }
用法示例:
KeyValue kv = new KeyValue("Hello", "World"); KeyValue kv1 = new KeyValue("Hello", "World", kv); kv1.Key = "Hello World Key!"; kv1.Value = "Hello World Value!"; kv1.Data = kv; kv1.SetKeyValue("Hello", "World"); kv1.SetKeyValue("Hello", "World", kv);
結合List,用起來簡捷方便,易於擴展,以此為作鍵值基礎,下一個示例將使用這個KeyValue來簡化代碼。