ArrayList为什么没有item属性?可是msdn上说有的 命名为Item的Property在C#里面会缺省的转换成indexer形式。ArrayList al = new ArrayList();...MyObj obj = (MyOb)al[0]; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 而且,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 有少数一些.NET的public成员没有写在MSDN里面。这是微软公开承认的。理由是他们认为这些函数不推荐使用。所以,有些时候在外面看到一些代码,输入的时候,右键提示里面没有,但编译仍然能通过。 呵呵,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!这里面格式对齐,好麻烦啊!!! 贴主注意里面的 this 的两次定义即可了。 贴主注意里面的 this 的两次定义即可了。 谢谢你们的想法SQLPARAMETER LIST我觉得应该考虑索引字重复的情况另外可以用foreach 取代for 求一正则表达示 c#可以删除整个excel文件么? C#智能设备项目--条码扫描的问题 Web service连接数据库的奇怪问题!!!(给100分) ACEESS的连接问题 在C#中如何判断一个变量是否属于某个数据类型 请问EF5中,如何做导航属性的更新操作? 如何清空form上的所有pictureBox控件? 关于窗体重绘的一个问题 请问一下,如果我想查询system名称空间中的一个类,怎么查询呢? 谁能给出一个创建SQL数据库的例子啊?在线。。。。 Devexpress中WinForm如何统一设置字体样式?
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
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!这里面格式对齐,好麻烦啊!!!
SQLPARAMETER LIST我觉得应该考虑索引字重复的情况
另外可以用foreach 取代for