【C#】配列型の実装方法【配列の初期化と使い方】
この記事では一列に並んだデータ「配列型」について解説します。
配列型は、同じ型のデータを順番に並べたい時に採用されるデータ構造。
クラス全員のテスト結果や毎月の売り上げ
などの似たようなデータを連続して格納する際に利用されます。
本記事をご覧頂くと下記内容が理解できます。
この記事で学べること
・配列型とは何か?
・C#の配列型の使い方
・配列型でよく見る応用
疑問点や質問には何でも答えようと思っています。
この記事の不明点はこちらからお問い合わせ下さい。
C#のおすすめ講座を受講して、最短1週間でC#をマスターしよう!
⇒C#が学べるおすすめプログラミングスクール&オンライン講座11選
C# 配列型とは?配列型の使い方と初期化の方法
まず初めに配列型とは何か?配列型の使い方について解説します。
C# 配列型の概念
配列(array)とは,同一の型データをメモリ上に一列に隙間をあけずに並べたものです。
// 配列の例
// クオーター毎のバスケットボールの得点
int[] score = new int[4] { 15,25,18,23 };
// 6クラスの各平均点
double[] average = new double[6] { 65.1, 70.3, 60.3, 80.5,60.3,80.5 };
上記のコードのように
バスケットボールのクオーター毎の得点を格納したり、6クラス(AクラスからFクラス)の平均点をまで順番に並べたり。
配列型は連続するデータを格納できます。
上記の例を図式化したのが下記の画像です。
図のように、同一の型データをメモリ上に一列に隙間をあけずに並べています。
連続するデータを一列に並べることでき、データの前後関係を明らかにすることができます。
※図のように配列の先頭は「0から始まる」ので注意が必要。
C#配列の初期化の方法
int型やString型などのデータ構造と比較し、配列型の初期化は少し特殊です。
※「初期化」とは、使い始める前の変数に初期値(最初の値)を設定する行為のこと
// 初期化の方法①
int[] dartsScore = new int[3];
dartsScore[0] = 40;
dartsScore[1] = 50;
dartsScore[2] = 27;
// 初期化の方法②
String[] familiy = new string[] { "Toshikazu","Sachiko","Nancy","Tarou" };
初期化の方法①のように、空の配列を作成した後に値を設定する方法と
初期化の方法②のように、変数の宣言と同時に値の格納も同時にする方法があります。
C# 配列型のメリット
配列型のメリット
・連続するデータを隙間なく並べることができる。
・データの前後関係を明らかにできる。
・メモリの使用効率がいい。
次の項で頻繁に使用するメソッドを確認し、配列の使い方を学んでいきましょう。
C#-配列型を用いたプログラムの実装
下記のプログラムを実行して、配列型の動作を確認します。
※プロジェクトの作成方法はこちら(左記サイトの①プロジェクトの作成をご確認ください)
プログラムのコピペは下記から
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LecturerBeginner
{
class Program
{
static void Main(string[] args)
{
// ①C# 配列の初期化を行う
int[] dartsScore = new int[3];
dartsScore[0] = 40;
dartsScore[1] = 50;
dartsScore[2] = 27;
String[] familiy = new string[] { "Toshikazu","Sachiko","Nancy","Tarou" };
// ②C# 配列のLengthメソッドで配列の長さを取得する。
Console.WriteLine("配列の個数は" + dartsScore.Length);
// ③C# 配列のメソッドを使用しコピーする
String[] familyCopy = new string[1];
Array.Copy(familiy,0, familyCopy,0,1);
Console.WriteLine("コピーした配列の値は" + familyCopy[0]);
}
}
}
上記のプログラムを実行すると下記の結果が得られます。
※プログラムの実行方法はこちら(左記サイトの③プロジェクトの実行をご確認ください)
C#-配列型プログラムの解説
この項では紹介したプログラムの解説を行います。
①C# 配列の初期化を行う
// 初期化の方法①
int[] dartsScore = new int[3];
dartsScore[0] = 40;
dartsScore[1] = 50;
dartsScore[2] = 26;
String[] familiy = new string[] { "Toshikazu","Sachiko","Nancy","Tarou" };
配列2つを初期化します。
ダーツ3投分の記録を保持したInt型配列のdartsScotreと
家族の名前を保持したString型配列family変数の2つです。
②C# 配列のLengthメソッドで配列の長さを取得する。
// ②C# 配列のLengthメソッドで配列の長さを取得する。
Console.WriteLine("配列の個数は" + dartsScore.Length);
配列の変数でメソッドを呼び出すことができます。
今回はLengthを呼び出しましょう。
変数名.Lengthと記載すると、配列の個数が返ってきます。
そのため、Console.WriteLineで結果を表示すると「配列の個数は3」と結果が返ってきます。
③C# 配列のメソッドで配列の値をコピーする
// ③C# 配列のメソッドを使用しコピーする
String[] familyCopy = new string[1];
Array.Copy(familiy,0, familyCopy,0,1);
Console.WriteLine("コピーした配列の値は" + familyCopy[0]);
配列をコピーする際はArrayクラスの標準ライブラリCopyメソッドを呼び出します。
Arrayクラスを呼び出せば配列の操作に関するメソッドを扱うことができます。
Console.WriteLineのConsoleクラスと同じようなイメージです。
ArrayクラスのCopyメソッドを呼び出し、配列をコピーしています。
Copy(引数1 ,引数2,引数3,引数4,引数5)の使い方
引数1:コピー元の配列
引数2:コピー元の開始位置
引数3:コピー先配列
引数4:コピー先の開始位置
引数5:コピーする要素数(何個配列をコピーするか)
今回は、family[4]変数の一番最初の値"Toshikazu"が、
コピー先配列familyCopyの開始位置0にコピーされる。
という処理になります。
C# 配列の課題にチャレンジ
配列の処理を理解するために課題にチャレンジしてみましょう。
(1)配列のLengthメソッドを用いてdartsScoreの平均を求めてみよう
配列のLengthメソッドを用いてdartsScore[3](ダーツ3投分の得点)の平均を求めてください。
(ヒント:dartsScore[3]の配列を一つずつ足し合わせ、配列の個数で割る)
正解は下記の通りです。
double average = (dartsScore[0] + dartsScore[1] + dartsScore[2] )/dartsScore.Length;
Console.WriteLine("dartsScoreの平均点は" + average + "です");
C# 配列の使い方まとめ
以上がC#における配列の使用方法でした。
まとめると
配列とは
・一列に並んだデータ。
・データの前後関係を明らかにできる。
・Arrayクラスを用いれば配列の操作を行うことができる。
・intやString型など様々なデータ型に対応している。
・(使用例)野球の1~9回までの得点、1~12か月の連続する売上データなど。
プログラミングに於いて頻繁に実装する概念になるのでしっかり理解しておきましょう。
以上です。お疲れさまでした。
C#プログラミング始めやすいように下記にC#を学ぶための完全ガイドを作成しています。
気軽にC#の勉強を始めてみてください!!
C#プログラミングを学んでみたい方向けの完全ガイドを下記に掲載します。
⇒C#初心者向けプログラミング完全ガイド
下記のリンクを順にこなせば、C#プログラミングを学ぶことができます。
はじめに
初級編
- 【Visual Studio】プロジェクト/ソリューションの作り方とその違い
- 【C#】console.writeで画面上に文字を表示する【writeの使い方とよくあるエラー】
- 【C#】変数を使って計算してみよう!【int/doubleの使い方とよくあるエラー】
- 【C#】String文字列の使い方【replace/substring/Length】
- 【C#】if文で条件分岐を実装する【if() elseの使い方】
- 【C#】for文でループ/くり返し処理を実装する【forの使い方とよくあるエラー】
- 【Visual Studio】ビルドとデバックのやり方/注意点
- 【C#】リスト(List)型の初期化方法!【Listの使い方とよくあるエラー】
- 【C#】メソッド(関数)を使ってみよう!【関数の使い方とよくあるエラー】
- 【C#】クラスとインスタンスを使いこなす【クラスの使い方とよくあるエラー】
知っておくと便利
- 【Visual Studio】おすすめのショートカットキーで業務効率化
- 【C#】break/continue文の実装方法【breakの使い方とよくあるエラー】
- 【C#】アクセス修飾子(publilc/private)の使い方【publicの使い方とよくあるエラー】
中級編
- 【C#】Windows Formでアプリ画面を作成しよう【WindosFormの使い方】
- 【C#】アプリ画面の名前を変更しよう【Formのプロパティ設定方法】
- 【C#】ラベルの設定方法をご紹介【labelの使い方】
- 【C#】ラベルの設定方法をご紹介【labelの使い方】
- 【C#】画面にボタンを追加してみよう【Buttonの使い方】
- 【C#】画面にボタンのメソッドを実装しよう①【Buttonの使い方と注意点】
- 【C#】画面にボタンのメソッドを実装しよう②【Buttonの使い方と注意点】
上級編(やらなくてもOK)
- 随時更新予定
プログラミングで挫折した方へ。。。
おすすめのC#教材(補助教材として)