一 数组
声明:
int [] a;
int [,]b;
分配空间:
a=new int[5];
b=new int[4,5];
二 集合类
System.Collections命名空间;
数组列表ArrayList
相当于动态数组,实现IList;
哈希表 Hashtable
相当于键/值的集合,实现IDictionary;
用[] 进行访问,表示获取,增加、删除、修改;
提示:
用于查询时,比线性搜索的效率更高,可用于程序的优化;
栈和队列 Stack Queue;
三 使用foreach 访问数组及集合
foreach(类型 变量 in xxxx)
其中xxxx必须是实现了实现IEnumerable接口或含有GetEnumerator方法的类型;
这个方法的原型是IEnumerator GetEnumerator();
返回的是一个接口IEnumerator
Current属性
MoveNext及Reset方法;
四 泛型集合
泛型具有更好的类型检查及性能
System.Collections.Generic名称空间
列表 List/LinkedList SortedList
字典 Dictionary SortedDictionary;
集 HashSet SortedSet
栈,队列 Stack,Queue;
示例
1 ListTest
List 的Add方法,Count属性,[i]索引器;
foreach的遍历;
2 HashtableTest
HashTable的[] 索引,可以表示获取/加入/修改/删除(置为null)
Foreach遍历;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 使用List
{public class ListTest{public static void Main(){List<string> fruits = new List<string>();fruits.Add("Apple");fruits.Add("Banana");fruits.Add("Carrot");Console.WriteLine("Count:{0}", fruits.Count);PrintValues1(fruits);PrintValues2(fruits);PrintValues3(fruits);Console.ReadKey();}static void PrintValues1(IList<string>myList){for (int i = 0; i < myList.Count; i++)Console.Write("{0}\n", myList[i]);}static void PrintValues2(IList<string>myList){foreach (string item in myList)Console.Write("{0}\n", item);}static void PrintValues3(IEnumerable<string>myList){IEnumerator<string> myEnumerator = myList.GetEnumerator();while (myEnumerator.MoveNext())Console.Write("{0}\n", myEnumerator.Current);Console.WriteLine();}}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 使用Hashtable
{internal class Class1{public static void Main(){Hashtable myHT = new Hashtable();myHT.Add("Ton V.Bergyk", "023-010-66757");myHT.Add("Tom sony", "086-010-27654");myHT.Add("Mr.John", "071-222-33445");myHT["mr.John"] = "071-222-33445";//加入或修改PrintKeysAndValues(myHT);PrintByKeys(myHT);Console.ReadKey();}public static void PrintKeysAndValues(Hashtable myList){IDictionaryEnumerator myEnumerator = myList.GetEnumerator();while (myEnumerator.MoveNext())Console.WriteLine("\\t{0}:t{1}",myEnumerator.Key, myEnumerator.Value);Console.WriteLine();}public static void PrintByKeys(Hashtable myList){IEnumerator ie = myList.Keys.GetEnumerator();while (ie.MoveNext()){object key = ie.Current;object value = myList[key];Console.WriteLine("\t{0}:\t{1}", key, value);}Console.WriteLine();foreach (string key in myList.Keys){Console.WriteLine("\t{0}:\t{1}", key, myList[key]);}}}
}