目录
一、数组
创建数组
创建数组的4种方法
第一种
string[] myarray = new string[5];
myarray[0] = "aaa";
myarray[1] = "sss";
myarray[2] = "ddd";
myarray[3] = "fff";
myarray[4] = "qqq";
第二种
string[] Array2={"1","2"};
第三种
string[] Array3=new string[3]{"1","2","3"};
第四种
string[] Array4=new string[]{"1","2","3","4"};
数组的常用方法
foreach循环
/* 输出每个数组元素的值 n是数组 */
foreach (int j in n )
{
int i = j-100;
Console.WriteLine("Element[{0}] = {1}", i, j);
}
random.Next方法
random.Next();//返回非负的一个随机数
random.Next(MaxValue);//返回一个小于所指定最大值的非负随机数
数组中找查数组元素的 indexOf 方法及使用
string test = "wolfman wolfman wolfmanwolfman";
test.IndexOf('o');//返回1,第一位出现o的下标
test.IndexOf("ma");//返回4,第一位出现的m开头下标
test.IndexOf("mm");//返回-1,没有找到就会返回-1
test.IndexOf("o",2);//返回9,找出o第二次出现的下标
//返回9,从第8位开始,找3位,也就是olf中第一次出现的下标,但该下标是原字符串里的下标
test.IndexOf("o",8,3);
lastindexof() :在字符串中从后向前定位字符和字符串 ,和上面方法一样
IndexOfAny ||lastindexofany
char[] chr = { 'a','b', 'w' };
string test = "wolfman wolfman wolfmanwolfman";
test.IndexOfAny(chr);//返回0 找第一次列表中出现的w下标
test.IndexOfAny(chr,2);//返回5,找第二个最先出现的字符,第一个找到了w,第二个找到了a,返回了a的下标
test.IndexOfAny(chr,7,5);//返回8,类似,已经不想写了
lastindexofany同上
Reverse数组反转和sort排序
Array.Sort(a);//排序
Array.Reverse(数组名);
int[] a = { 1, 4, 5, 7, 3 };
Array.Sort(a);//排序
Array.Reverse(a);//反转
二、列表list<泛型>
1.列表創建
泛型就是對數據封裝規定數據類型的一種稱呼。
List<int> list = new List<int>();
這樣就創建了一個int類型的列表集合,但目前他是空的集合
/*列表*/
List<int> list = new List<int>() { 22, 33, 44 };
list.Add(99);
list[0] = 11;
for(int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
列表支持數組方式的寫法讀取和賦值。
列表內部數據是使用數組進行儲存的,一個空的列表內部會有一個長度為0的數組,當給列表中添加元素時,列表的容量會扩大為4,添加到第五個時為8,如果添加到第9時扩大為16,以此類推。
2.列表常用方法
當列表中的容量發生改變時,他會創建一個新的數組。使用array.Copy()方法將元素複製到一個新數組中,為了節省時間,如果事先知道要存儲數據的個數,就可以利用初始化函數來指定列表的大小,如:
List<int> list=new List<int>(10);//當容量不夠時按兩倍進行扩大
我們可以通過list.Capacity屬性來獲取和設置容量
list.Capacity=10;
列表操作方法
list.Add(15);//添加一个数字到列表的最后一位
list.Count;//获取列表已用容量
list.Insert(2, 13);//在2号位插入13,2号位以后的内容整体后移一位
list.Remove( 7);//从第一个元素开始从前向后遍历,删除第一个遇到的元素,剩余数据向前移动
list.RemoveAt(0);//删除指定位置的元素
list.RemoveRange(0, 3);//从o号位开始,删除包括该位置在内的三个元素位置
list.IndexOf(6);//从前向后遍历
list.LastIndexOf(6);//从后向前遍历
list.Sort();//从小到大排序
list.Contains(3);//确定3是否存在于列表
3.列表總結
泛型就是指某些數據的多種類型的集合,為該類型定制一個清晰統一是數據類型,定制完畢必須安裝類型規則存入。
三、字典Dictionary
创建字典
要使用Dictionary集合,需要导入C#泛型命名空间
using System.Collections.Generic;
Dictionary<string, int> dic = new Dictionary<string, int>();
字典常用方法
//添加元素的方式
dic.Add("user",10001);
dic["pwd"] = 123;
//删除元素
dic.Remove("user");
//判断key是否存在
dic.ContainsKey("user")
//判断是否存在该value
dic.ContainsValue(10001)
//通过指定的key来获取value,如果能获取到,返回true,并且将对应的value放到out参数中p中
int p = 0;
bool result = dic.TryGetValue("pwd",out p);
//获取字典中的个数
dic.Count
//获取所有的key值
Dictionary<string,int>.KeyCollection keys = dic.Keys;
foreach (var item in keys)
{
Console.WriteLine(item);
}
//获取所有的value值
Dictionary<string, int>.ValueCollection values = dic.Values;
foreach (var item in values)
{
Console.WriteLine(item);
}
//遍历字典
foreach (var item in dic)
{
Console.WriteLine(item.Key+":"+item.Value);
}
其它常见属性和方法的说明:
Comparer: 获取用于确定字典中的键是否相等的 IEqualityComparer。
Count: 获取包含在 Dictionary中的键/值对的数目。
Item: 获取或设置与指定的键相关联的值。
Keys: 获取包含 Dictionary中的键的集合。
Values: 获取包含 Dictionary中的值的集合。
Add: 将指定的键和值添加到字典中。
Clear: 从 Dictionary中移除所有的键和值。
ContainsKey: 确定 Dictionary是否包含指定的键。
ContainsValue: 确定 Dictionary是否包含特定值。
GetEnumerator: 返回循环访问 Dictionary的枚举数。
GetType: 获取当前实例的 Type。 (从 Object 继承。)
Remove: 从 Dictionary中移除所指定的键的值。
ToString: 返回表示当前 Object的 String。 (从 Object 继承。)
TryGetValue: 获取与指定的键相关联的值。