懂得放弃,才会有新的收获!

实现自定义Hashtable (.net)

By weisnet On 2009-05-13 At 02:16 View:575

需要两个类

1.typeFiles.cs

C#
  1. using System;
  2. namespace Model
  3. {
  4.     /// <summary>
  5.     /// typeFiles 的摘要说明。
  6.     /// </summary>
  7.     public class typeFiles
  8.     {
  9.         private object _Fkey;
  10.         private object _Fvalue1;
  11.         private object _Fvalue2;
  12.         public object Fkey
  13.         {
  14.             get
  15.             {
  16.                 return _Fkey;
  17.             }
  18.             set
  19.             {
  20.                 _Fkey = value;
  21.             }
  22.         }
  23.         public object Fvalue1
  24.         {
  25.             get
  26.             {
  27.                 return _Fvalue1;
  28.             }
  29.             set
  30.             {
  31.                 _Fvalue1 = value;
  32.             }
  33.         }
  34.         public object Fvalue2
  35.         {
  36.             get
  37.             {
  38.                 return _Fvalue2;
  39.             }
  40.             set
  41.             {
  42.                 _Fvalue2 = value;
  43.             }
  44.         }
  45.     }
  46. }

  
2.WEHash.cs (Hashtable 类, 与Arraylist结合)

C#
  1. using System;
  2. using System.Collections;
  3. namespace Command
  4. {
  5.     /// <summary>
  6.     /// WEHash 的摘要说明。
  7.     /// </summary>
  8.     public class WEHash
  9.     {
  10.         private ArrayList alist = new ArrayList();
  11.         public WEHash()
  12.         {
  13.             //
  14.             // TODO: 在此处添加构造函数逻辑
  15.             //
  16.         }
  17.         public void Add(object key,object value,object valType)
  18.         {
  19.             Model.typeFiles cmt=new Model.typeFiles();
  20.             cmt.Fkey = key;
  21.             cmt.Fvalue1 = value;
  22.             cmt.Fvalue2 = valType;
  23.             alist.Add (cmt);
  24.         }
  25.         public ArrayList HashItems
  26.         {
  27.             get
  28.             {
  29.                 return alist;
  30.             }
  31.             set
  32.             {
  33.                 alist = value;
  34.             }
  35.         }
  36.         public bool hasContaint(object key)
  37.         {
  38.             foreach(object itm in alist)
  39.             {
  40.                 Model.typeFiles cmt = (Model.typeFiles)itm;
  41.                 if (cmt.Fkey.ToString() == key.ToString())
  42.                     return true;
  43.             }
  44.             return false;
  45.         }
  46.     }
  47. }


typeFiles.cs 里可以多定义几个构造函数 (这样Hash.Add(项才可以多))

使用方法:

Command.WEHash cw=new WEHash();
cw.Add("keyName1","value1","value2");
cw.Add("keyName2","value1","value2"); 
cw.Add("keyName3","value1","value2");

然后再把 cw.HashItems 传给要操作的方即可.

要使.Add添加个项更多,就要使得 typeFiles.cs 构造多几个,然后再修改

 public void Add(object key,object value,object valType)

      Model.typeFiles cmt=new Model.typeFiles(); 
      cmt.Fkey = key; 
      cmt.Fvalue1 = value; 
      cmt.Fvalue2 = valType; 
      ....其余的cmt项.
      alist.Add (cmt);
}

·上一篇:ajax跨域访问(cross-domain)
·下一篇:IE下innerHTML,outerHTML所引起的问题

for this post

 
 

Leave a Reply

赶快抢个沙发坐坐!
请先 登陆  还没帐号

Hot Posts Powered by weiseditor

  • Add to Google

Friend links