程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 集合,

C# 集合,

編輯:C#入門知識

C# 集合,


 

ArrayList
ArrayList myarry = new ArrayList();
myarry.Add(1);//添加元素
myarry.Add(2);//索引也是從零開始
myarry.Add(3);
myarry.Add(4);
myarry.Add(5);

myarry.Insert(3,"7");
插入在索引號為3的位置一個為7的值
後面的索引依次向後+1

myarry.Remove(4);
移除數據為4的元素
括號裡面是想要移除的數據

myarry.RemoveAt(4);
移除索引號為4的數據

int aa = myarry.Count;
統計集合內元素的個數
Console.WriteLine("總共有"+aa+"個元素");

myarry.Clear();//將集合清空

bool b = myarry.Contains(3);
判斷是否有括號內的數據,返回的是bool值(True或者False)

int bb = myarry.IndexOf(2);
int cc = myarry.LastIndexOf(2);
Console.WriteLine(bb);

myarry.Sort();
自動進行排序,升序

若需要降序排列,在自動排列之後,對整個集合進行反轉指令
myarry.Reverse();

ArrayList ar = new ArrayList();
ar = (ArrayList)myarry.Clone();
集合的克隆

foreach (object a in myarry)
{//從頭到尾打印出集合中的所有元素
Console.WriteLine(a);
}

Console.ReadLine();

 

集合中有元素是以object這個類型存在
object類是所有類的基類
小的數據類型不可以接收object類型的數據
object類型的變量可以接收任何類型的變量
string aaa = "2";
object bbb = aaa;
aaa不可以接收bbb的值

Console.WriteLine(myarry[3]);
Console.ReadLine();

 

Stack 集合

Stack aa = new Stack();
aa.Push(1);//向stack集合中添加數據
aa.Push(2);
aa.Push(3);
aa.Push(4);
aa.Push(5);

注意:Stack是沒有索引的
Console.WriteLine(aa[0]);//是錯誤的

Console.WriteLine(aa.Peek());//僅用來查看最後一位,不踢出

aa.Pop();//彈出,踢出最後一個進入集合的數據

Console.WriteLine( aa.Pop());

int aaa = aa.Count;//統計個數

aa.Clear();//清空集合


foreach (object a in aa)
{
Console.WriteLine(a);
}

Console.ReadLine();


Queue 隊列集合
先進的先出,後進的後出
沒有索引
Queue qq = new Queue();
qq.Enqueue(1);//給集合中添加元素
qq.Enqueue(2);
qq.Enqueue(3);
qq.Enqueue(4);
qq.Enqueue(5);

qq.Dequeue();//將排在最前面的剔除
int c =qq.Count;//統計個數

qq.Peek();//只查看,不踢出

qq.Clear();//清空集合
bool bb =qq.Contains(3);//判斷是否包含這個元素

foreach (object b in qq)
{
Console.WriteLine(b);
}

Console.ReadLine();

foreach 遍歷集合
foreach (object aa in name)
{
Console.Write(aa+"\t");
}

Console.ReadLine();

object a;
int b = 4;
a = b;
double c = 3.14;
a = c;
bool d = true;
a = d;
string e = "Hello";
a = e;
DateTime dt = DateTime.Now;
a = dt;

課後題
輸入班級人數,輸入每個人的姓名、語數英成績進入集合
求語文的總分,數學的平均分,
英語的最高分的人的姓名及所有科目的分數(冒泡排序)
0 姓名 4 8 12
1 語文成績5 9 13
2 數學成績6 10 14
3 英語成績7 11 15
Console.Write("請輸入班級人數:");
int n = int.Parse(Console.ReadLine());
double yu = 0;
double shu = 0;
ArrayList al = new ArrayList();
for (int i = 0; i < n; i++)
{
Console.Write("請輸入第{0}個人的姓名:",i+1);
al.Add(Console.ReadLine());
Console.Write("請輸入第{0}個人的語文成績:",i+1);
al.Add(double.Parse(Console.ReadLine()));
yu += double.Parse(al[al.Count - 1].ToString());
Console.Write("請輸入第{0}個人的數學成績:", i + 1);
al.Add(double.Parse(Console.ReadLine()));
shu += double.Parse(al[al.Count - 1].ToString());
Console.Write("請輸入第{0}個人的英語成績:", i + 1);
al.Add(double.Parse(Console.ReadLine()));
}
Console.WriteLine("所有信息輸入完畢,請按回車鍵繼續!");
Console.ReadLine();
Console.WriteLine("語文的總分是:"+yu);
Console.WriteLine("數學的平均分是:"+(shu/n));

for (int i = 3; i < 4*n-1; i+=4)
{
for (int j = i; j < 4 * n - 4; j += 4)
{
if (double.Parse(al[i].ToString()) < double.Parse(al[j + 4].ToString()))
{
換姓名
object zhong = al[i - 3];
al[i - 3] = al[j + 1];
al[j + 1] = zhong;
換語文
zhong = al[i - 2];
al[i - 2] = al[j + 2];
al[j + 2] = zhong;
換數學
zhong = al[i - 1];
al[i - 1] = al[j + 3];
al[j + 3] = zhong;
換英語
zhong = al[i];
al[i] = al[j + 4];
al[j + 4] = zhong;
}
}
}
Console.WriteLine("英語最高分的學生是{0},英語分數是{1},語文分數是{2},數學分數{3}",al[0],al[3],al[1],al[2]);
Console.ReadLine();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved