文章目录
Array
keyword:连续存储、相同类型、快速访问、慢速增删、长度不变、下标访问
常用方法示例:
csharp
void Main()
{
int[] intArray = new int[]{1,2,3,4,5,6,8,7};
//Length获取数组长度
Console.WriteLine("Length获取数组长度:");
int length=intArray.Length;
Console.WriteLine(length);
//IndexOf获取值的索引
Console.WriteLine("IndexOf获取值的索引:");
int index=Array.IndexOf(intArray,4);
Console.WriteLine(index);
//foreach遍历数组
Console.WriteLine("foreach遍历数组:");
foreach(int i in intArray){
Console.Write(i+" ");
}
Console.WriteLine("");
//Reverse逆转数组
Console.WriteLine("Reverse逆转数组:");
Array.Reverse(intArray);
foreach (int i in intArray)
{
Console.Write(i+" ");
}
Console.WriteLine("");
//Sort排序数组
Array.Sort(intArray);
Console.WriteLine("Sort排序数组");
foreach (int i in intArray)
{
Console.Write(i + " ");
}
}
Length获取数组长度:
8
IndexOf获取值的索引:
3
foreach遍历数组:
1 2 3 4 5 6 8 7
Reverse逆转数组:
7 8 6 5 4 3 2 1
Sort排序数组
1 2 3 4 5 6 7 8
ArrayList
keyword:连续存储、不同类型、快速读取、慢速增删、长度可变、索引访问
常用方法示例:
csharp
void Main()
{
ArrayList arrayList1 = new ArrayList(5);
ArrayList arrayList2 = new ArrayList() {1,2,3,4,5};
Console.WriteLine("Count集合元素个数:");
int number = arrayList2.Count;
Console.WriteLine(number);
Console.WriteLine("Add添加元素:");
arrayList1.Add(1);
arrayList1.Add("love");
arrayList1.Add(2);
foreach(var i in arrayList1){
Console.Write(i+" ");
}
Console.WriteLine("");
Console.WriteLine("AddRange在末尾添加一个ArrayList:");
arrayList1.AddRange(arrayList2);
foreach (var i in arrayList1)
{
Console.Write(i + " ");
}
Console.WriteLine("");
Console.WriteLine("Insert指定插入&RemoveAt指定删除:");
arrayList1.Insert(0,100);
arrayList1.RemoveAt(2);
foreach (var i in arrayList1)
{
Console.Write(i + " ");
}
Console.WriteLine("");
}
Count集合元素个数:
5
Add添加元素:
1 love 2
AddRange在末尾添加一个ArrayList:
1 love 2 1 2 3 4 5
Insert指定插入&RemoveAt指定删除:
100 1 2 1 2 3 4 5
List<T>
ArrayLIst的泛型类,连续存储、长度可变
常用方法示例:
csharp
void Main()
{
List<int> intList = new List<int>() { 1, 2, 3, 4, 5 };
Console.WriteLine("Add添加元素:");
intList.Add(1);
intList.Add(2);
foreach (var i in intList)
{
Console.Write(i + " ");
}
Console.WriteLine("");
Console.WriteLine("Remove删除第一个匹配的项:");
intList.Remove(1);
foreach (var i in intList)
{
Console.Write(i + " ");
}
Console.WriteLine("");
Console.WriteLine("Contains具体元素是否在列表中:");
bool flag=intList.Contains(2);
Console.WriteLine(flag);
Console.WriteLine("Exists满足条件的元素是否在列表中:");
bool flag2 = intList.Exists(n=>n%2==0);
Console.WriteLine(flag2);
}
Add添加元素:
1 2 3 4 5 1 2
Remove删除第一个匹配的项:
2 3 4 5 1 2
Contains查看某项是否在列表中:
True
Exists某项是否在列表中:
True
HashSet
keyword:没有重复、允许null、无序、线程不安全
常用方法示例:
csharp
void Main()
{
HashSet<String> hash1=new HashSet<string>();
Console.WriteLine("Add添加元素:");
hash1.Add("hello");
hash1.Add("world");
hash1.Add("bro");
foreach(String h in hash1){
Console.Write(h+" ");
}
Console.WriteLine("");
Console.WriteLine("Contains判断元素是否存在:");
bool flag=hash1.Contains("hello");
Console.WriteLine(flag);
Console.WriteLine("Remove删除元素:");
hash1.Remove("hello");
foreach (String h in hash1)
{
Console.Write(h+" ");
}
Console.WriteLine("");
Console.WriteLine("Size计算大小:");
int number = hash1.Count();
Console.WriteLine(number);
}
Add添加元素:
hello world bro
Contains判断元素是否存在:
True
Remove删除元素:
world bro
Size计算大小:
2
HashTable
keyword:线程安全
常用方法示例:
csharp
void Main()
{
Hashtable table1=new Hashtable();
Console.WriteLine("Add添加元素:");
table1.Add(1,"hello");
table1.Add(2,"world");
table1.Add(3,"bro");
Console.WriteLine("遍历键keys");
foreach (int k in table1.Keys)
{
Console.Write(k + " ");
}
Console.WriteLine("");
Console.WriteLine("遍历值value");
foreach (String v in table1.Values)
{
Console.Write(v + " ");
}
Console.WriteLine("");
Console.WriteLine("Contains判断元素是否存在:");
bool flag = table1.Contains("hello");
Console.WriteLine(flag);
Console.WriteLine("Remove删除key:");
table1.Remove(1);
foreach (DictionaryEntry t in table1)
{
Console.Write(t + " ");
}
Console.WriteLine("");
}
Add添加元素:
遍历键keys
3 2 1
遍历值value
bro world hello
Contains判断元素是否存在:
False
Remove删除key:
[3, bro] [2, world]
Dictionary<K,T>
有序的、唯一的
csharp
void Main()
{
Dictionary<int, string> myDictionary = new Dictionary<int, string>();
Console.WriteLine("Add添加元素:");
myDictionary.Add(1, "hello");
myDictionary.Add(2, "good");
myDictionary.Add(3, "boy");
foreach (KeyValuePair<int,string> t in myDictionary)
{
Console.WriteLine(t.Key + t.Value );
}
Console.WriteLine("遍历键keys");
foreach (int k in myDictionary.Keys)
{
Console.Write(k + " ");
}
Console.WriteLine("");
Console.WriteLine("遍历值value");
foreach (String v in myDictionary.Values)
{
Console.Write(v + " ");
}
Console.WriteLine("");
Console.WriteLine("查找key");
if (myDictionary.ContainsKey(2))
{
Console.WriteLine(myDictionary[2]);
}
Console.WriteLine("");
}
Add添加元素:
1hello
2good
3boy
遍历键key
1 2 3
遍历值value
hello good boy
查找key
good
Queue
keyword:先进先出
常用方法示例:
csharp
void Main()
{
Queue queue = new Queue();
Console.WriteLine("Enqueue添加元素到队尾:");
queue.Enqueue('A');
queue.Enqueue('B');
queue.Enqueue('C');
Console.WriteLine("foreach遍历队列:");
foreach (char c in queue)
Console.Write(c + " ");
Console.WriteLine();
Console.WriteLine("Dequeue移除开头元素 ");
char ch = (char)queue.Dequeue();
Console.WriteLine(ch);
Console.WriteLine("ToArray复制Queue到一个新的数组中");
Object[] queue1= (Object[])queue.ToArray();
foreach (char c in queue1)
Console.Write(c + " ");
}
Enqueue添加元素到队尾:
foreach遍历队列:
A B C
Dequeue移除开头元素
A
ToArray复制Queue到一个新的数组中
B C
Stack
keyword:先进后出
常用方法示例:
csharp
void Main()
{
Stack stack = new Stack(5);
Console.WriteLine("Push入栈:");
stack.Push('A');
stack.Push('B');
stack.Push('C');
Console.WriteLine("foreach遍历栈:");
foreach (char c in stack)
Console.Write(c + " ");
Console.WriteLine();
Console.WriteLine("Pop出栈:");
char ch = (char)stack.Pop();
Console.WriteLine(ch);
Console.WriteLine("Top查看栈顶:");
char ch2 = (char)stack.Peek();
Console.WriteLine(ch2);
}
Push入栈:
foreach遍历栈:
C B A
Pop出栈:
C
Top查看栈顶:
B