C# Array 陣列- 教學筆記(使用visual studio) - 關於網路那些事...

文章推薦指數: 80 %
投票人數:10人

C#提供了許多預設class可以用來儲存資料,其中一個就是array陣列陣列可以 ... 例如: int[,] x= new int[4,3]; 建立一個二維、 4x3的array 等同: int[ ... C#Array陣列-教學筆記(使用visualstudio) C#Array陣列-教學筆記(使用visualstudio) December6,2016 PostedBy AdamOu-Yang Array陣列 C#提供了許多預設class可以用來儲存資料,其中一個就是array陣列 陣列可以用來儲存多組資料。

在應用於文章、使用者資料、權限管理等介面時,可以先將值儲存成陣列,再透過迴圈的方式一個一個取出來。

(迴圈的用法將會在後續提到) 在這裡,會用比較簡潔易懂的方式來解說, 建議可以先從本篇理解陣列用法,再前往官網參考手冊參考更仔細的寫法 一維陣列 在C#中的陣列,是用資料型別+大刮號[]來宣告,並且可在括號中填寫陣列size 範例: //新增陣列address,並在大括號設定可容納五個元素 int[5]address; //指定陣列userid,但不限定容量 int[]userid; 在資料結構方面,仍繼承了C語言的寫法,會從0開始累算 也就是第一筆資料,會存放在userid[0] 範例: int[3]userid; userid[0]=100334; userid[1]=100342; userid[2]=100321; 在C#還提供另外一種比較便利的寫法,讓我們可以很輕鬆的定義陣列內容 string[]formdata={"年齡","性別","身高","體重","備註"}; Console.WriteLine(formdata[3]);//結果:體重 二維陣列 如果在一維陣列要再新增第二維,只要加一個逗號(,)表示之 當然,也可以在新增時定義各維度的sizetype[,,…]array名稱=newtype[size1,size2,size3…] 例如:int[,]x=newint[4,3];建立一個二維、4x3的array 等同:int[,]x={{2,3,2},{5,6,1},{4,6,2},{4,6,3}}; ing[,]formdata 取出資料也是依照相同的模式 (注意!這樣的寫法,要留意資料結構必須對稱) 例如,取出第一維[0]第二維[1]位置的值 formdata[0,1](注意!不是用formdata[0][1]) 範例: int[,]formdata={ {1,2}, {3,4}, {5,6}, {7,9} }; Console.WriteLine(formdata[0,1]);//結果:2 三維陣列 如果在二維陣列要再新增第三維,只要加兩個逗號(,,)表示之(以此類推…) (注意!這樣的寫法,要留意資料結構必須對稱) string[,,]user 接下來,取出資料同樣依照相同方式 例如,取出第一維[1]第二維[0]第三維[1]的資料 user[1,0,1] 範例 string[,,]user={ { {"a1","b1"}, {"c1","d1"}, {"e1","f1"}, {"g1","h1"} }, { {"a2","b2"}, {"c2","d2"}, {"e2","f2"}, {"g2","h2"} } }; Console.WriteLine(user[1,0,1]);//結果:b2 不規則(不對稱)陣列(JaggedArrays) 前面提到的多維陣列寫法,內容架構必須對稱 例如: int[,]formdata={ {1,1}, {1,1}, {1,1} }; 如果需要跳脫這樣的規則,就可以使用不規則陣列JaggedArrays JaggedArrays的主要差別在於:他陣列中的元素也是array(陣列中的陣列) 定義方式如下: int[][]numbers 定義完成之後,指派內容時,要在new一次陣列,這時就可以在新的陣列中存取任意長度值 int[][]numbers={ newint[]{1,2}, newint[]{3,4,5,6,7,8,9}, newint[]{10,11} }; Console.WriteLine(numbers[1][2]);//結果:5 當然,你可以混和這兩種方式來建構陣列, 但通常不建議這麼做,除非真的沒有其他辦法 範例: int[][,]numbers={ newint[,]{{1,2},{3,4}}, newint[,]{{5,6},{7,8},{9,10},{11,12},{13,14}}, newint[,]{{15,16},{17,18},{19,20}} }; Console.WriteLine(numbers[1][3,0]); ##陣列屬性 Array.Length取得陣列資料長度 在程式開發時,時常會需要取得陣列長度 可以直接使用.Length方法來取得 範例: int[]num={1,2,3,4,5,6,7}; Console.WriteLine(num.Length); Array.Rank取得陣列維度值 藉由Rank可以返回陣列的維度值,例如:四維陣列,就會返回4 範例: int[,,,]dim=newint[2,5,3,7]; Console.WriteLine(dim.Rank);//結果4 int[]num={{{5,6},{7,8}},{{5,6},{7,8}},{{5,6},{7,8}}}; Console.WriteLine(num.Rank);//結果3 Array.Max,Array.Min,Array.Sum 藉由Max可以取得陣列的最大值、Min可以取得陣列的最小值、Sum可以取得總和 範例: int[]ary={3,5,6,2}; Console.WriteLine(ary.Max()); //Outputs6 Console.WriteLine(ary.Min()); //Outputs2 Console.WriteLine(ary.Sum()); //Outputs16 進階用法 底下記錄一些常會用到的技巧 將持續更新 (如果對於陣列資料有更多的操作,例如新增、刪除..,建議使用List來處理) Array.Sort排序 藉由Sort來對陣列內容排序,可接受數值、字串排序 string[]datas={"About","Name","One","All"}; Array.Sort(datas); foreach(variindatas) { Console.WriteLine(i); } 將陣列內容轉換成小寫 透過ConvertAll處理所有值,並且在返回的過程一一轉換成小寫 string[]datas={"About","Name","One"}; varlowerTreat=Array.ConvertAll(datas,(v)=>{returnv.ToLower();}); Console.WriteLine(lowerTreat[1]); 搜尋 搜尋陣列內容 藉由FindAll並且在返回過程檢查字首為A的字串 string[]datas={"About","Name","One","All"}; varsearchData=Array.FindAll(datas,(v)=>{returnv.StartsWith("A");}); foreach(variinsearchData) { Console.WriteLine(i); } <> LatestPosts AwsOpsworksIntroduction HowtoSettingKubernetesSecrettoPodLocalFile HowtosettingKubernetesSecrettoenvironmentvariables Gettingstarttorunkubernetes DeployaGoProjecttoDockerhubbyGithubAction Golang:Gin+Gorillatobuildawebsocketapplication Golang:解決GoWebsocketupgrade:websocket:requestoriginnotallowedbyUpgrader.CheckOrigin跨域問題 使用AwsCopilotCLI部署AWSECS ElasticsearchClustershardsandreplicas常見問題 Linux安裝及配置Elasticsearchcluster Categories Ai Aspnetctutorial Aws Backend Cicd Cicd Css Dart Database Devops Docker Elasticstack Elk Enterprice Financial Flutter Frontend Git Go Infographics Iot Java Javascript Kubernetes Learning Linux Mis Newsrecommandation Php Profile Programming Python Scrum Skill Streaming Webdesign Websocket Wordpress Thissiteusescookies.Bycontinuingtousethiswebsite,youagreetotheiruse.IAccept



請為這篇文章評分?