C#集合类型——Array、ArrayList、List 之浅谈
在學習或工作中,集合是經常用到的,可以換一句話說“無項目無集合”,“項目皆有集合”。它一般存儲一系列數據或者將一系列數據進行相關操作。在這里先大略談一些集合類型的相關知識用于回顧。
數組(Array)
數組一般只存儲一種類型的數據,有一維數組,二維數組等多維數組。都基于System.array類。
格式:type[]? typename;? type指類型,typename指數組名稱。
一維數組有多種書寫形式:
int [] a={1,2,3};
int [] b=new int[]{1,2,3};
int [] c;? c=new int[]{1,2,3};
int [] d=new int[3];d[0]=1;d[1]=2;d[2]=3;
二維數組:相當于表格
int[,] e=new int[2,2];? e[0,0]=1;e[0,1]=2;e[1,0]=3;e[1,1]=4;//兩行兩列
int[,] f=new int[2,2]{{1,2},{3,4}};//已知行列數
int[,] f=new int[,]{{1,2},{3,4}};//未知行列數,根據后面的初始化來規定行列數
?
三維 類推,相當于四方體。
交錯數組:相當于一維數組的每一個元素又是一個數組。常稱為,數組的數組。
int[][] h=new int [2][]{new int[]{2,4,6},new int[]{1,2,3,4,5}};
int[][] i=new int[][]{new int[]{2,4,6},new int[]{1,2,3,4,5}};
?
int[][] j={new int[]{2,4,6},new int[]{1,2,3,4,5}};
int[][] k=new int[2][]; k[0]=new int[3]{2,4,6}; k[1]=new int[5]{1,2,3,4,5};
?
?
則,k[0][0]=2;k[0][1]=4;k[1][2]=3;....
int[][,] m=new int [2][,]
{?? new int[,] {{1,3},{5,7}},new int[,]{{0,2},{4,6}}}
數組常用操作
(1)遍歷數組
?
int [] a={1,2,3};
foreach(int n in a){Console.WriteLine(n);}
結果輸出 1 2 3
(2)數組字符串之間轉換
string[]? sArr1={"123","456","789"};
string?? str1=sArr1.Join(",");//結果為字符串:123,456,789
string[]? sArr2=str1.Split(',');//字符串轉化為string數組,去掉分隔符“,”,轉化維數組
-----------------------------------------------
string? str2="abc 12,65;8"
string?[]? sArr2=str2.Split(',' ,' ' ,';');
----------------------------------------------
string s="13mnnfsj";
char[]? a=s.TocharArray();\\將字符串轉化為char數組。
(3)常用函數
int[] a={1,2,3,4};
a.Sum();//總和;? a.Average();? a,Min();?? a.Max();
(4)排序、復制、查找
int? []a={1,2,3};
int? []b=new int[a.Length];??
Array.Copy(a,b,a.Length);//將a數組復制到b數組
Array.Sort(a);//將a數組升序排列
Array.Reverse(a);//將a數組反轉排序
使用Contains方法和IndexOf方法查找指定的元素。
ArrayList類
相當于一種高級動態數組。using System.Collections.Generic;它比數組更高級,可以動態的刪除和添加元素并且它的容量可以擴充,但是它只有一維的形式。一般有三種構造方式。
一,默認的大小(16)來初始化
ArrayList arr=new ArrayList ();
二,將一個集合元素添加ArrayList 中
int[] a=new int[]{1,2,3};
ArrayList arr1=new ArrayList (a);
三,指定大小來初始化,
ArrayList arr2=new ArrayList (100);
常用屬性:略,在VS里,比如輸入 以上的arr2.時就會顯示其屬性和說明。
常用方法
int[] a=new int[]{1,2,3};
ArrayList arr1=new ArrayList (a);
(一)增加
1,Add(元素);方法,
arr1.Add(7);// arr1元素為1 2 3 7
2,Insert(索引,元素);方法//索引從0開始
arr1.Insert(1,7);// arr1元素為1 7 2 3
(二)刪除
1,Clear()方法//刪除所有
arr1.Clear();//arr1為空了。
2.Remove(匹配對象)方法//移除首次匹配對象
arr1.Remove(3);//arr1元素為1 2
3,RemoveAt(索引)方法//刪除索引對應的元素
arr1.RemoveAt(1);//arr1元素為1 3
4,RemoveRange(索引,范圍)方法//從索引處刪除一定范圍的數
arr1.RemoveRange(1,2);//arr1元素為1
(三)遍歷
同數組一樣
(四)查找
Contains(元素);方法
arr1.Contain(3);//判斷arr1是否包含3這個元素,包含,為True ;不包含為 False
List
using System.Collections.Generic; 它是將ArrayList 規定了類型,提高編碼質量,較少了類型之間的錯誤。在這里大略講解一下一般List的用法,在以后將會深入研究泛型List的運用。
List <int> lis1=new List<int>();
(一)添加
lis1.Add(500);//直接添加一串元素
list1.AddRange(new int[]{501,502});//添加一串元素。
(二)插入,刪除,查找等一系列操作與上面 ArrayList和Array相似。
--------------------------------------------
規定類型也可以為自定義類型,比如:
1,先見一個Person類
?? class Person {
??????? public string name ;
??????? public string Name {
??????? get{return name;}
??????????? set { value = name; }
??????? }
??? }
2,創建Person對象
?Person p = new Person();
??????????? p.name = "Chen";
??????????? Person p1 = new Person();
??????????? p1.name = "Li";
??????????? Person p2 = new Person();
??????????? p2.name = "Zhang";
3,創建Person類型的集合并將Perosn對象放入集合
? List <Person>Li=new List<Person>();
??????????? Li.Add(p);
??????????? Li.Add(p1);
??????????? Li.Add(p2);
??????????? Console.WriteLine(Li[0].name);//輸出集合的第一個元素,結果為:Chen。
?
轉載于:https://www.cnblogs.com/anyihen/p/5456964.html
總結
以上是生活随笔為你收集整理的C#集合类型——Array、ArrayList、List 之浅谈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XCAP协议
- 下一篇: C#字符串、字节数组和内存流间的相互转换