C#配列の基礎を即理解!初心者が知るべき情報満載!
web開発
2016/12/08

こんにちは。 Udemy で C# のコースを提供している 舩原です。
プログラミングを初めて学ぶ時、色々と覚える事が多くて大変ですよね。
そこで、今回は、覚えずとも必要になったときに見直してもらえるように、
C#の「配列」についての基礎をご紹介したいと思います。
(ぜひ、ブックマークして必要な時に見直してください)
配列とは?
プログラミング言語によって、若干意味合いが違ってきますが、
C# においては、「複数のデータを格納・取り出しができるもの、複数のデータの集合」
という感じで考えるといいのでしょう。
ただ、上記の説明だけでは、分からないと思います。
そこで、以下の章から早速コードを使って順に説明していきます。
配列の宣言
C# において配列は、宣言しないと使えません。
そして宣言は、格納できる要素の型を使って表現されています。
例えば、 int型のデータを格納する配列を作成するならば、
1 |
int[] array1 = new int[10]; // 配列の宣言 |
と宣言します。
これで、int型の要素を10個格納できる配列 array1 が使えるようになります。
同様に
1 |
double[] array2 = new double[3]; // double型の配列の宣言 |
1 |
object[] array3 = new object[5]; // object型の配列の宣言 |
と書くと double型の要素3個格納できる array2 や object型の要素5個格納できる array3 ができます。
配列の要素に代入
配列の宣言の方法が分かったら、次は配列の使い方です。
宣言した後に配列にデータを入力したり、配列の要素を使ったりしてみたいと思います。
以下は、配列の要素に整数を入れています。
1 2 3 4 |
int[] array4 = new int[3]; array4[0] = 3; array4[1] = 5; array4[2] = 7; |
上記のように
配列を表す変数の後に “[添字]” としたものに代入する形で、
配列にデータが格納できます。
データの格納ができたなら、次は配列の要素の使い方です。
要素を取り出すには、格納したときの添字の使い方と一緒です。
1 2 3 |
int[] array5 = new int[2]; array5[1] = 3; int data = array5[1]; // 変数data には 3が格納される |
これで、変数data に array5の2番目の要素である「3」が格納されます。
配列の初期化
配列の宣言、格納や取り出しが分かったら、
配列を使って色々プログラミングをしていく事になるのですが、
int型の配列などを使っていると、最初にいろいろな値で初期化しておきたい!と思う事があります。
そんな時は以下のように、配列を宣言し、配列の要素に値を代入していってもいいでしょう。
1 2 3 4 |
int[] array6 = new int[3]; array6[0] = 1; array6[1] = 3; array6[2] = 5; |
上記のように書いてもいいですが、、初期化専用の書き方もあります。
1 |
int[] array7 = new int[3] { 1, 3, 5 }; // array6 と同じ結果になる |
また、代入される要素とその要素数が決まっているので、省略できて
1 |
int[] array8 = new int[] { 1, 3, 5 }; // array6,array7 と同じ結果になる |
と要素数3 を省略して書いても大丈夫です。
さらには、new int[] も省略できます。
1 |
int[] array9 = { 1, 3, 5 }; // array6,array7,array8 と同じ結果になる |
コード9が短い初期化方法でしょう。
それぞれすべて同じ内容を指しています。
私はどれを使ってもいいと思っているので、
どれを使うかは分かりやすさや好みで決めてもらって大丈夫でしょう。
配列の要素数を取得する方法
配列の要素を取得する方法は、いろいろありますが、
配列は、データの集合でもあるので、C#において配列はクラスで表現されています。
Array クラスが配列のクラスとなります。
Arry クラスの説明は以下のマイクロソフトのドキュメントで調べていただくのがいいでしょう。
https://msdn.microsoft.com/ja-jp/library/system.array.aspx
今回は、要素数を調べるので、Array.Length を使います。
https://msdn.microsoft.com/ja-jp/library/system.array.length.aspx
1 2 |
int[] array10 = new int[100]; int n = array10.Length; // 100 |
Length プロパティは、配列の要素の総数を出力します。
ここでは、int型の要素数100の配列を宣言していますので、n には 100が入ります。
配列の要素を、繰り返し構文(foreach文・for文) を使って処理する
配列の要素一つ一つに対して処理をしていきたいという時は、foreach/for 文を使っていきます。
1 2 3 4 5 |
int[] array11 = { 1, 2, 3, 4, 5, 6 }; foreach (int element in array11) { System.Console.WriteLine(element); } |
上記コードは配列 array11 の一つ一つが element として参照され System.Console.WriteLine() でコンソールに出力しています。
for文もありますが、配列を繰り返し処理するという部分においてメリットはありません。
foreach を積極的に使っていくと初心者は良いと思います。
一応、for文で同じ事をした時のものも記載しておきます。
1 2 3 4 5 |
int[] array12 = { 1, 2, 3, 4, 5, 6 }; for (int i = 0; i < array12.Length; i++) { System.Console.WriteLine(array12[i]); } |
for のカッコの中で 変数i を宣言して、それを利用している方法です。C言語から流用された文法だろう事が想像できますね。
配列のソートについて
最後にソートについてお話しましょう。
配列のソートについては、
Array.Sort とつかうことになります。
1 2 3 4 5 6 7 |
int[] array13 = { 8, 5, 6, 11, 0, 2 }; Array.Sort(array13); // { 0, 2, 5, 6, 8, 11 } に変わっている foreach (int element in array13) { System.Console.WriteLine(element); } System.Console.ReadKey(); |
配列array13 を Array.Sort に引数として渡してあげるだけです。
すると、array13の中のデータがソートされます。
文字列の場合はどうでしょうか?
以下のように文字列の配列も Array.Sort を使ってソートできます。
1 2 3 4 5 6 |
string[] array14 = { "Zulu", "India", "Bravo", "Foxtrot", "シーシャープ", "Alfa" }; Array.Sort(array14); // { "Alfa","Bravo","Foxtrot","India","Zulu","シーシャープ" } に変わっている foreach (string element in array14) { System.Console.WriteLine(element); } |
なお、この記事では取り上げませんが、ソートしたい場合は、配列に格納する方法だけでなく、Listクラスを使用してソートする方法もあります。
おわりに – 今後の学習の仕方
以上で、配列についての基礎を紹介した今回の記事はおしまいです。
この記事を読み終わったあなたなら、
配列をこうしたいけどどうしよう、と思う事もでてくるでしょう。
そんな時は C# プログラミングガイドというマイクロソフトのWebサイトのページを見ると色々載っているので参考になるかもしれません。
https://msdn.microsoft.com/ja-jp/library/9b9dty7d.aspx
もっと簡単なところから学びたいという方は、ぜひ僕のコースを受講してみてください。
より高度な事を学びたいという方は、ぜひ本などを読んで学習していきましょう!
では、プログラミングをこれからも楽しんでください!
目的別!最先端ITスキル講座
海外の人気講師によるWeb制作のベストセラ―講座
【世界で30万人が受講】フルスタック・Webエンジニア講座(2017最新版)

ウェブデザインの基礎、サーバーサイドプログラミング、モバイルアプリ開発、APIプログラミングなどを網羅的にマスターできる
最新!iOS11アプリ開発講座
【6日で速習】iOS 11 Swift 4アプリ開発入門 決定版 20個のアプリを作る ARKit,CoreML,NFC

地図検索、ARなど20個以上のアプリを作って学べる実践講座
日本を代表するデータサイエンティスト辻真吾氏による人気講座
【世界で5万人が受講】実践 Python データサイエンス

データ解析の基本、可視化、統計、機械学習などデータサイエンスに関するあらゆる実践的なスキルがPythonで身に付く!
初級者から学べる人工知能講座の決定版
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習

初心者向けの人工知能と機械学習のコース。文字認識や株価分析なども実施