数组下标是字符串的实现
2005-10-25 16:45
429 查看
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 来实现,具体实现将在以后进行研究
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 来实现,具体实现将在以后进行研究
相关文章推荐
- C语言实现用指定字符切割字符串并返回数组
- javaScript-----数组使用字符串作为下标
- javaScript-----数组使用字符串作为下标 .
- C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题
- COM 字符串数组参数的实现
- 程序目的:实现c++整型和字符数组,字符串的相互转化
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- 实现数组反转及字符串反转的方法
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- 字符串数组元素排列与组合的Java递归实现
- Python实现字符串与数组相互转换功能示例
- C++实现字符串数组作为函数的参数的反序输出
- 不用下标操作实现字符串回文判断
- 一个数组下标错误引起的字符串错误
- C#实现字符串转换成字节数组的简单实现方法
- 实现的任意下标开始的数组类
- 数组实现栈及用栈实现字符串逆序
- 编程题:指针数组实现,将多个字符串按字母顺序输出。
- 实现字符串循环右移n 位与左移n位(不建立数组,直接用指针)