はじめに
今回はListを便利にする拡張メソッドのご紹介!
拡張メソッドってなんぞやという方は以下の記事をどうぞ。
拡張メソッドとは既存のクラスにメソッドを追加するというものです。
ListExtension
さっそくコードです!
上記のListExtension.csを作成すると、
以下のようにどのListでも追加したメソッドが使えるようになります。
List<int> list = new List<int>(){0, 1, 2, 3}; list.Shuffle();
使い方
では、追加した8種類のメソッドを順に説明していきます。
AddToNotDuplicate
AddToNotDuplicateは重複しないように追加するメソッドです。
使い方は以下の通り。
List<int> list = new List<int>(){0, 1, 2, 3}; list.AddToNotDuplicate (1);//既にリストに存在するので追加されない list.AddToNotDuplicate (4);//リストに存在しないので追加されるう foreach (var item in list) { Debug.Log (item); }
0
1
2
3
4
RemoveDuplicate
RemoveDuplicateは重複をなくすメソッドです。
使い方は以下の通り。
List<int> list = new List<int>(){0, 0, 1, 2, 2, 3}; list.RemoveDuplicate ();//0と2が重複しているのでリストから消える foreach (var item in list) { Debug.Log (item); }
0
1
2
3
Shuffle
Shuffleはリストの中身をランダムに並べるメソッドです。
使い方は以下の通り。
List<int> list = new List<int>(){0, 1, 2, 3}; list.Shuffle();//順番がごちゃごちゃに(毎回変わる) foreach (var item in list) { Debug.Log (item); }
1
3
2
0
GetAndRemove
GetAndRemoveは指定した番号のものを取得し、リストからなくすメソッドです。
使い方は以下の通り。
List<int> list = new List<int>(){0, 1, 2, 3}; int no = list.GetAndRemove(0);//0番目の要素(0)を取り出しリストからなくす Debug.Log ("no : " + no.ToString ()); foreach (var item in list) { Debug.Log (item); }
no : 0
1
2
3
Pop
Popは最後に追加したものを取得し、リストからなくすメソッドです。
使い方は以下の通り。
List<int> list = new List<int>(){0, 1, 2, 3}; int no = list.Pop();//最後に追加した要素(3)を取り出し、リストからなくす Debug.Log ("no : " + no.ToString ()); foreach (var item in list) { Debug.Log (item); }
no : 3
0
1
2
Dequeue
Dequeueは最初に追加したものを取得し、リストからなくすメソッドです。
使い方は以下の通り。
List<int> list = new List<int>(){0, 1, 2, 3}; int no = list.Dequeue();//最初に追加した要素(0)を取り出し、リストからなくす Debug.Log ("no : " + no.ToString ()); foreach (var item in list) { Debug.Log (item); }
no : 0
1
2
3
GetAtRandom
GetAtRandomはランダムに取得するメソッドです。
使い方は以下の通り。
List<int> list = new List<int>(){0, 1, 2, 3}; int no = list.GetAtRandom();//要素をランダムに取得 Debug.Log ("no : " + no.ToString ()); foreach (var item in list) { Debug.Log (item); }
no : 3
0
1
2
3
GetAndRemoveAtRandom
GetAndRemoveAtRandomはランダムに取得し、リストからなくすメソッドです。
使い方は以下の通り。
List<int> list = new List<int>(){0, 1, 2, 3}; int no = list.GetAndRemoveAtRandom();//要素をランダムに取り出し、リストからなくす Debug.Log ("no : " + no.ToString ()); foreach (var item in list) { Debug.Log (item); }
no : 1
0
2
3