一 数组
声明:
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]);
}
}
}
}