命名为Item的Property在C#里面会缺省的转换成indexer形式。
ArrayList al = new ArrayList();
...
MyObj obj = (MyOb)al[0];

解决方案 »

  1.   

    而且,ARRAYLIST还不能使用名字索引,比如:ARRYLIST AL=NEW ARRYLIST();
    AL.ADD(NEW SQLPARAMETER("@ABC");
    不能使用下面的方法:
    AL["@ABC"]来表示相应的SQLPARAMETER,真麻烦,还需要一大堆的转换。我现在想自己开发一个SQLPARAMETER的ARRAYLIST类:class GeoArrayList
    {
        private ArrayList al;
        public GeoArrayList()
        {
            al=new ArrayList();
        }
        public int Count
        {
             get{return this.al.Count;}
        }
        public void Add(SqlParameter sqlPara)
        {
            this.al.Add(sqlPara);
        }
        public void Clear()
        {
            this.al.Clear();
        }
        ...
    }现在的问题是该如何实现索引方法,即:
    1——
    通过GeoArrayList[int index]返回GeoArrayList.al[index]
    2——
    通过GeoArrayList["sqlParaName"]执行一个搜索,检查GeoArrayList中的所有成员,如果存在sqlParaName则返回该控件,否则,返回null
      

  2.   

    有少数一些.NET的public成员没有写在MSDN里面。这是微软公开承认的。理由是他们认为这些函数不推荐使用。所以,有些时候在外面看到一些代码,输入的时候,右键提示里面没有,但编译仍然能通过。
      

  3.   

    呵呵,triout,原来是你啊!我在你那个帖子上回复了。下面是完整的代码class GeoArrayList{
    private ArrayList al;
    public GeoArrayList(){
    al=new ArrayList();
    }
    public int Count{
    get{return this.al.Count;}
    }
    public void Add(SqlParameter sqlPara){
    this.al.Add(sqlPara);
    }
    public void Clear(){
    this.al.Clear();
    } public SqlParameter this[int index]{
    get{
    return (SqlParameter)(al[index]);
    }
    } public SqlParameter this[string index]{
    get{
    for(int i=0;i<al.Count;i++){
    if(((SqlParameter)al[i]).ParameterName==index){
    return (SqlParameter)al[i];
    }
    }
    return null;
    }
    }
    }调用的代码:private void Test(){
             GeoArrayList list = new GeoArrayList(); list.Add(new SqlParameter("test1","hello"));
    list.Add(new SqlParameter("test2",123)); SqlParameter sp1 = list[0];//parameter of "test1"
    SqlParameter sp2 = list[1];//parameter of "test2" SqlParameter sp3 = list["test1"];//parameter of "test1"
    SqlParameter sp4 = list["test22"];//null
    }faint!这里面格式对齐,好麻烦啊!!!
      

  4.   

    贴主注意里面的 this 的两次定义即可了。
      

  5.   

    贴主注意里面的 this 的两次定义即可了。
      

  6.   

    谢谢你们的想法
    SQLPARAMETER LIST我觉得应该考虑索引字重复的情况
    另外可以用foreach 取代for