ArrayList
每次集合中实际包含的元素个数(count)超过了可以包含的元素的个数(capcity)的时候,
集合就会向内存中申请多开辟一倍的空间,来保证集合的长度一直够用。
class Program
{
static voidMain(string[] args)
{
//创建了一个集合对象
ArrayListlist = new ArrayList();
//集合:很多数据的一个集合
//数组:长度不可变、类型单一
//集合的好处:长度可以任意改变 类型随便
list.Add(1);
list.Add(3.14);
list.Add(true);
list.Add("张三");
list.Add('男');
list.Add(5000m);
list.Add(new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9 });
Person p =new Person();
list.Add(p);
list.Add(list);
//list.AddRange(new string[]{})
for (int i =0; i < list.Count; i++)
{
if(list[i] is Person)
{
((Person)list[i]).SayHello();
}
else if(list[i] is int[])
{
for (int j =0; j < ((int[])list[i]).Length; j++)
{
Console.WriteLine(((int[])list[i])[j]);
}
}
else
{
Console.WriteLine(list[i]);
}
//Console.WriteLine(list[i]);
}
Console.ReadKey();
}
}
public class Person
{
public voidSayHello()
{
Console.WriteLine("我是人类");
}
}
ArrayList各种方法
ArrayList list = new ArrayList();
//添加单个元素
list.Add(true);
list.Add(1);
list.Add("张三");
//添加集合元素
list.AddRange(new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9 });
//list.AddRange(list);
//list.Clear();清空所有元素
//list.Remove(true);删除单个元素写谁就删谁
//list.RemoveAt(0);根据下标去删除元素
//list.RemoveRange(0, 3);根据下标去移除一定范围的元素
// list.Sort();//升序排列
//list.Reverse();反转
//list.Insert(1, "插入的");在指定的位置插入一个元素
//list.InsertRange(0, new string[] { "张三", "李四" });在指定的位置插入一个集合
//bool b = list.Contains(1);判断是否包含某个指定的元素
list.Add("颜世伟");
if(!list.Contains("颜世伟"))
{
list.Add("颜世伟");
}
else
{
Console.WriteLine("已经有这个屌丝啦");
}
for (int i =0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
Console.ReadKey();
集合长度的问题;
每次集合中实际包含的元素个数(count)超过了可以包含的元素的个数(capcity)的时候,
集合就会向内存中申请多开辟一倍的空间,来保证集合的长度一直够用。
count 表示这个集合中实际包含的元素的个数
capcity 表示这个集合中可以包含的元素的个数
HashTable集合
键值对集合
在键值对集合当中,我们是根据键去找值的。
键值对对象[键]=值;
*****:键值对集合当中,键必须是唯一的,而值是可以重复的
//创建了一个键值对集合对象
Hashtable ht= new Hashtable();
ht.Add(1, "张三");
ht.Add(2, true);
ht.Add(3, '男');
ht.Add(false, "错误的");
ht.Add(5, "张三");
ht[6] = "新来的";//这也是一种添加数据的方式
ht[1] = "把张三干掉";
ht.Add("abc", "cba");
//abc----cba
if(!ht.ContainsKey("abc"))
{
//ht.Add("abc", "哈哈哈");
ht["abc"] = "哈哈哈";
}
else
{
Console.WriteLine("已经包含abc这个键!!!");
}
// ht.Clear(); //移除集合中所有的元素
ht.Remove(3);
foreach (varitem in ht.Keys)
{
Console.WriteLine("键是-----{0}==============值是{1}", item, ht[item]);
}
//在键值对集合中 是根据键去找值的
//Console.WriteLine(ht[1]);
//Console.WriteLine(ht[2]);
//Console.WriteLine(ht[3]);
//Console.WriteLine(ht[false]);
//Console.WriteLine("==================================");
//for (int i = 0; i < ht.Count; i++)
//{
// Console.WriteLine(ht[i]);
//}
Console.ReadKey();
Var 推断类型
//var:根据值能够推断出来类型
//c#是一门强类型语言:在代码当中,必须对每一个变量的类型有一个明确的定义;js是一门弱类型语言
var n =15;
var n2= "张三";
var n3= 3.14;
var n4= 5000m;
var n5= true;
var n6= '男';
Console.WriteLine(n.GetType());
Console.WriteLine(n2.GetType());
Console.WriteLine(n3.GetType());
Console.WriteLine(n4.GetType());
Console.WriteLine(n5.GetType());
Console.WriteLine(n6.GetType());
Console.ReadKey();
8、编码格式
产生乱码的原因就是因为你保存这个文件的编码格式跟你打开这个文件的编码格式不一样。
9、文本文件
拖到txt文件中,还能看得懂的文件就是文本文件。
Path类
string str = @"C:\3000soft\RedSpider\Data\Message\老赵.wav";
//获得文件名
Console.WriteLine(Path.GetFileName(str));
//获得文件名但是不包含扩展名
Console.WriteLine(Path.GetFileNameWithoutExtension(str));
//获得文件的扩展名
Console.WriteLine(Path.GetExtension(str));
//获得文件所在的文件夹的名称
Console.WriteLine(Path.GetDirectoryName(str));
//获得文件所在的全路径
Console.WriteLine(Path.GetFullPath(str));
//连接两个字符串作为路径
Console.WriteLine(Path.Combine(@"c:\a\" , "b.txt"));
//int index = str.LastIndexOf("\\");
//str = str.Substring(index + 1);
//Console.WriteLine(str);
Console.ReadKey();