zoukankan      html  css  js  c++  java
  • 数组下标是字符串的实现

    using System;

    namespace Oceansoft.LOGERP.MessageClient.MessageHeadAffirm
    {
        
    /// <summary>
        
    ///  报文头的形成  
        
    ///  作者:贾海天
        
    /// </summary>
        
    public class MessageHead
        {
            
    //相关数组中存储项目的数组
            protected object
    [] _items;
            
    //数组中的项目数
            protected 
    int _count=0;
            
    public int Length
            {
                get
                {
                    
    return _count;
                }            
            }
            
    public object this[string key]
            {
                get
                {
                    
    return KeyToObject(key);
                }
                
    set
                {
                    AddToArray(
    key,value);
                }
            }
            protected bool KeyExists(string 
    key)
            {
                
    for (int n=0;n<_count;n++)
                {
                    KeyItemPair pair
    =(KeyItemPair)_items[n];
                    
    if (pair.key==key)
                    {
                        
    return true;
                    }
                }
                
    return false;
            }
            protected void AddToArray(string 
    key,object item)
            {
                
    if (!KeyExists(key))
                {
                    _items
    [_count]=new KeyItemPair(key,item);
                    _
    count++;
                }            
            }
            protected object KeyToObject(string 
    key)
            {
                
    for (int n=0;n<_count;++n)
                {
                    KeyItemPair pair
    =(KeyItemPair)_items[n];
                    
    if (pair.key==key)
                    {
                        
    return pair.item; 
                    }
                }
                
    return null;
            }
            
    public MessageHead(int MessageHead_Length)
            {
                
    //
                
    // TODO: 在此处添加构造函数逻辑
                
    //
                _items
    =new object[MessageHead_Length];
            }
            protected struct KeyItemPair
            {
                
    public object item;
                
    public string key;
                
    public KeyItemPair(string k,object obj)
                {
                    
    key=k;
                    item
    =obj;
                }
            }
        }
    }
    使用方法(方法不是很完整,可以继续扩展):
    MessageHead MH=new MessageHead(3);
    MH
    ["Confirm_NO"]="aaa";
    MH
    ["IO_Seq"]="bbb";
    MH
    ["Gross_Pack_NO"]="ccc";

    注意:
    Struct 的实现是在栈里面实现的
    Class   实现是在托管堆里面实现的
    Class里面的方法是在托管堆里面的方法表里面保存的.



    此方法也可以用 Hashtable 来实现,具体实现将在以后进行研究
  • 相关阅读:
    路径规划 Adjacency matrix 传球问题
    Graph
    n的阶乘的n次方根的倒数的序列为无穷小序列
    原文来自 url get
    对称加密 非对称加密 生活模型
    签名 sign key 纸质邮件 历史 RSA诞生历史
    离散数学图论
    内联函数
    由适当地放宽不等式 概括出 一个引理
    序列 有界 无界的证明
  • 原文地址:https://www.cnblogs.com/jhtchina/p/261662.html
Copyright © 2011-2022 走看看