C# 集合

来源:http://www.cnblogs.com/1711643472qq/archive/2016/07/29/5717546.html
-Advertisement-
Play Games

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


 

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();


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Ajax製作智能提示搜索[js效果,後續博客園會更下麵顯示的部分,只是一個簡單的搜索結果,真正的大型網站用的是lucene全文搜索引擎。 歡迎關註博客園wangwangwangMax, 新浪:NewITdog, 微信公眾號:wangwangwangMax ...
  • 初入碼田--ASP.NET MVC4 Web應用開發之一 實現簡單的登錄 初入碼田--ASP.NET MVC4 Web應用開發之二 實現簡單的增刪改查 2016-07-29 在次之前,需要一臺電腦(~ ̄▽ ̄)~,以及Visual Studio 2013或者更高版本,SQL Sever資料庫(暫時不用 ...
  • 當我們在後臺得到一個字元串後比如字元串內容是:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 我們要在每兩個或者多個加入一個逗號或者一個分號時候,這個時候很多人都想的是迴圈,這個確實也不錯,但是在迴圈的基礎上呢,大家都知道C#中有一個字元 ...
  • 目錄: 1.判斷是否為空或者null 2.普通包含模糊查詢 1)以某字元串開頭的模糊查詢 2)以某字元串結尾的模糊查詢 3)包含某字元串的模糊查詢 3.精確到字元串對應位數字元的模糊查詢(*重點) linq大家肯定用過,對於其中的模糊查詢肯定也有所瞭解 提起linq的模糊查詢首先大家想到的肯定是 C ...
  • 初入碼田--ASP.NET MVC4 Web應用之創建一個空白的MVC應用程式 初入碼田--ASP.NET MVC4 Web應用開發之一 實現簡單的登錄 2016-07-29 一、創建M002AdminDemo.cs 右鍵【Models】-->添加-->類 二、創建Vm002新增管理員視圖模型.cs ...
  • 向空項目添加 ASP.NET Identity 的基本步驟。 ...
  • 前言: 1、最近維護公司的一個舊項目,是Socket通訊的,主要用於接收IPC(客戶端)發送上來的抓拍圖像,期間要保持通訊,監測數據包併進行處理。但是看之前那人寫的代碼個人覺得並不是很適合自己,於是就重寫了,不過項目暫時棄置了,為了以後能夠方便使用,也方便更多像我一樣還是渣渣程式員的人,記錄一些心得 ...
  • 聲明:本系列為原創,分享本人現用框架,未經本人同意,禁止轉載!http://yuangang.cnblogs.com 希望大家好好一步一步做,所有的技術和項目,都毫無保留的提供,希望大家能自己跟著做一套,還有,請大家放心,只要大家喜歡,有人需要,絕對不會爛尾,我會堅持寫完~ 如果你感覺文章有幫助,點 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...