C#の配列について3分で語ってみた

C#の配列はListの方が便利かなあ

この記事を三行にまとめると

C#の配列
角かっこを使った書き方
Listを使った書き方
この記事は以下の動画の中に出てきたサンプルコードを載せたものです。コピペなどが必要なときに使ってください。





角かっこを使った初期値の書き方

// 基本的な書き方
string[] omikuji = {"大吉", "中吉", "小吉"};

// もう少していねいな書き方
string[] omikuji = new string[3]{"大吉", "中吉", "小吉"};

// 要素を省略した書き方
string[] omikuji = new string[3];

// 要素の数を省略した書き方
string[] omikuji = new string[]{"大吉", "中吉", "小吉"};



要素の取得

string[] omikuji = new string[]{"大吉", "中吉", "小吉"};
System.Console.Write(omikuji[0]); // 大吉
System.Console.Write(omikuji[1]); // 中吉
System.Console.Write(omikuji[2]); // 小吉



要素の追加

string[] omikuji = new string[]{"大吉", "中吉", "小吉"};
System.Array.Resize(ref omikuji, 4);
omikuji[3] = "末吉";

System.Array.ResizeのSystemを省略する場合は「using System;」の記述が必要。
(using SystemはClassの外に書く)



要素の削除

using System;

string[] omikuji = new string[]{"大吉", "中吉", "小吉"};
Array.Resize(ref omikuji, 2);

ただしこれは特定の要素を削除するのではなく要素の数を減らす方法なのでピンポイントで削除するには別のやり方が必要。
LINQを使った要素の削除方法



要素の存在を確認

using System;

string[] omikuji = new string[]{"大吉", "中吉", "小吉"};
Array.IndexOf(omikuji, "大吉"); // 0
Array.IndexOf(omikuji, "中吉"); // 1
Array.IndexOf(omikuji, "小吉"); // 2
Array.IndexOf(omikuji, "末吉"); // -1


同じ要素が複数ある場合
using System;

string[] omikuji = new string[]{"大吉", "中吉", "大吉"};
Array.IndexOf(omikuji, "大吉"); // 0
Array.IndexOf(omikuji, "末吉"); // -1
Array.LastIndexOf(omikuji, "大吉"); // 2



Listの書き方

using System.Collections.Generic;

// 基本的な書き方
List omikuji = new List<string>(){"大吉", "中吉"};

// 要素を省略する場合
List omikuji = new List<string>();



Listの要素の追加と上書き

using System.Collections.Generic;

List omikuji = new List<string>(){"大吉", "中吉"};
omikuji.Add("小吉");
omikuji[2] = "末吉";



Listの要素を削除

using System.Collections.Generic;

List omikuji = new List<string>(){"大吉", "中吉"};
omikuji.Remove("小吉");



Listの要素がどこにあるかを確認

using System.Collections.Generic;

List omikuji = new List<string>(){"大吉", "中吉"};
omikuji.IndexOf("大吉"); // 0
omikuji.IndexOf("末吉"); // -1
omikuji.LastIndexOf("中吉"); // 1



Listの要素の存在のみを確認

using System.Collections.Generic;

List omikuji = new List<string>(){"大吉", "中吉"};
omikuji.Contains("大吉"); // True
omikuji.Contains("末吉"); // False
 もしかしたら何か関連しているかも? 
 みんなからのコメント 
まだコメントはいただけてないみたい……