集合:很多数据的一个集合
数组长度不可变、类型单一
集合的好处:长度可以任意改变、类型随便
我们将一个对象输出到控制台,默认打印对象所在类的命名空间
ArrayList
添加元素
ArrayList list = new ArrayList();
//添加单个元素
list.Add(123);
list.Add("aaa");
list.Add(false);
//添加集合元素
list.AddRange(new int[] { 2, 3, 4, 5, 6 });
list.AddRange(list);
for(int i=0;i<list.Count; i++)
{
Console.WriteLine(list[i]);
}
Console.ReadKey();
删除元素
list.Clear(); //清空所有元素
list.Remove(true); //删除单个元素,写谁就删谁
list.RemoveAt(0); //根据下标删除元素
list.RemoveRange(0,3);//根据下标删除一定范围元素
list.Sort(); //升序排列
list.Reverse(); //反转
list.Insert(1,"插入元素");
list.InsertRange(0,new string[]{"zhangsan","lisi"});
list.Contains("包含元素");//返回布尔类型
Hashtable:键值对
C# 是一门强类型语言
var:能够根据值来推断类型
JS 是一门弱类型语言
//输出顺序为什么是倒序的
Hashtable hashtable = new Hashtable();
hashtable.Add(1,"name");
hashtable.Add(2,3);
hashtable.Add(3,false);
hashtable.Add("oneKey", "bool");
foreach (var item in hashtable.Keys)
{
Console.WriteLine(hashtable[item]);
}
创建泛型集合对象
List<int> list =new List<int>(); //类型固定
list.Add(123);
list.AddRange(new int[]{1,2,3,4,5});
list.AddRange(list);
//List泛型集合可以转换为数组
List<int> list =new List<int>();
int[] nums = list.ToArray();
List<string> listStr =new List<string>();
string[] str =ListStr.ToArray();
//转集合 ToList();
装箱和拆箱
int n = 10;
object o=n; //装箱
int nn = (int)o;//拆箱
//比较,避免装箱和拆箱
List<int> list =new List<int>();
ArrayList list = new ArrayList();
dictionary
键值对成对遍历
C#下Hashtable和Dictionary之间的差别
Dictionary是泛型存储,Hashtable使用object
Dictionary<K,V>在使用中是顺序存储的,而Hashtable由于使用的是哈希算法进行数据存储,是无序的
onary之间的差别
Dictionary是泛型存储,Hashtable使用object
Dictionary<K,V>在使用中是顺序存储的,而Hashtable由于使用的是哈希算法进行数据存储,是无序的
线程上区别