最近在研究二维内存缓冲区的实现,各维的长度均不确定;为了方便快速定位,采用了基于字符串的索引器。以下是其局部的实现代码:
1.基础类
public class TagArray : ArrayList
{
private string m_strTagNo;
private int m_MaxLength ;
public TagArray( string strTagNo )
{
this.m_strTagNo = strTagNo ;
}
public string TagNo
{
get
{
return this.m_strTagNo ;
}
}
}
{
private string m_strTagNo;
private int m_MaxLength ;
public TagArray( string strTagNo )
{
this.m_strTagNo = strTagNo ;
}
public string TagNo
{
get
{
return this.m_strTagNo ;
}
}
}
2.集合类
public class TagArrayCollection : CollectionBase
{
public TagArrayCollection()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//字符串索引器
public TagArray this [string name]
{
get
{
int index = this.IndexOf( name );
if( index >= 0 )
{
return (TagArray)this.List[index] ;
}
return null;
}
}
public int IndexOf( string TagName )
{
if ((TagName != null) && (0 < TagName.Length))
{
int num2 = this.List.Count;
for (int num4 = 0; num4 < num2; num4++)
{
TagArray tag1 = (TagArray) this.List[num4];
if ( tag1.TagNo == TagName )
{
return num4;
}
}
}
return -1 ;
}
}
{
public TagArrayCollection()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
//字符串索引器
public TagArray this [string name]
{
get
{
int index = this.IndexOf( name );
if( index >= 0 )
{
return (TagArray)this.List[index] ;
}
return null;
}
}
public int IndexOf( string TagName )
{
if ((TagName != null) && (0 < TagName.Length))
{
int num2 = this.List.Count;
for (int num4 = 0; num4 < num2; num4++)
{
TagArray tag1 = (TagArray) this.List[num4];
if ( tag1.TagNo == TagName )
{
return num4;
}
}
}
return -1 ;
}
}