List<T>
Dictionary<K,V> 遍历的时候,只能使用foreach
Dictionary<string,Student> dic=new Dictionary<string,Student>();
dic.add("张三",stu1);
dic.add("李四",stu2);
//1种
foreach(string item in dic.Keys)
{
Student stu=dic[item];
}
//3种
foreach(Student item in dic.Values)
{
//一个item就是一个学生对象
}
foreach(KeyValuePair<string,Student> item in dic)
{
//item=key+Value
item.Key
item.Value
}
//数据绑定 List<UserInfo> list
dgvList.DataSource=new BindingList<UserInfo>(list);
--------------------------------------------------------------
Dictionary<string,Student> dic=new Dictionary<string,Student>();
BindingSource bs=new BindingSource();
bs.DataSource=dic.Values;
dgvList.DataSource=bs;
2.泛型扩容原理
1.时机:Add(Object obj)
2.ArrayList:
一个数组:_items
一个元素个数变量: _size
if(_size==this._items.Length)
{
EnsourCapacity(_size+1);
}
EnsourCapacity(int min)
{
int num=this.items.Length==0?4:this.items.Length*2;
this.Capacity=num;
}
结论:集合底层是通过两个数组相互copy实现的。
扩容的本质就是将新数组长度扩容成旧数组长度的2倍,其实上就是调度Array.Copy(oldArray,0,destArray,0,length)。
3.方法重载和构造
方法名和类名相同,作用用来初始化成员变量。
没有返回值类型,void都不能有。
方法重载:
方法名称相同
参数列表不同
和返回值无关
4.方法重载
可变参数
C#
public void say(params object[] objs)
{
//BaseDao Object... objs
}
public static int ExecuteNonQuery(string cmdTxt, params SqlParameter[] parames)
{
return ExecuteNonQuery(cmdTxt, CommandType.Text, parames);
}
Java
/**
* 执行查询操作 目的:返回一个读取器
* @param sql sql语句
* @param objs 参数列表
* @return 读取器对象
* @throws Exception
*/
public ResultSet executeQuery(String sql,Object... objs) throws Exception{
con=getConnection();
ps = con.prepareStatement(sql);
for (int i = 0; i < objs.length; i++) {
ps.setObject(i+1, objs[i]);
}
rs= ps.executeQuery();
return rs;
}
Console.WriteLine();