【C#】Listを使う

  • |
【C#】Listを使う
   

Listは、インデックスを使用してアクセスできる、厳密に型指定されたオブジェクトのリストを表します。
配列のような形で、好きな型を複数格納し、出し入れができます。
このLisTの使い方がイマイチよくわからなかったので、少し勉強をしてみることにしました。

List

Listは、簡単に利用すると以下の様な感じになります。
using System.Collections.Generic;

//初期化
var list = new List<int> ();
//格納
for (int i = 0; i < 10; i++) {
    list.Add (i);
}
//取り出し
foreach (var value in list) {
	Debug.LogError ("格納されているint型:" + list&#91;value&#93;);
}

//格納されているint型:0
//格納されているint型:1
.....................
//格納されているint型:9


//消去
list.Clear ();

&#91;/c&#93;

<h3>Contains</h3>
ある要素が List<T> 内に存在するかどうかを調べてる時に利用するのが、[Contains]です。
これは、List型の要素を検索し、条件にあっているかどうかbool型で返却をします。

var data = new List<string>();
data.Add("nishikawa");
data.Add("tanaka");
data.Add("kudou");
data.Add("inoue");

if (data.Contains ("kudou")) {
	Debug.LogError ("true");
}


Where

List内から、検索条件を指定して要素を取り出します。
var list = Enumerable.Range(0, 10).ToList();
// 5以上の数字を格納したList<int>を返します
var hoges = list.Where (x => x > 5).ToList ():

Select

Listの要素を操作できる。
// 要素同士を掛けあわして、List<int>で返している
var list = Enumerable.Range(0, 10).Select(x => x * x).ToList();

SelectMany

先ほどのSelectと似ているが、少し使い方が違う。
イメージとしては、元のListとは違うListを作る感じで、foreachが連続して使っている場所がすっきりとします。
// List<T>の中にあるList<T>を返す処理
var  manyHoge = new List<List<int>> ();
manyHoge.Add (listChild);
manyHoge.Add (listChild2);
var mamaHoge = manyHoge.SelectMany(names => names).ToList();

詳しくはこちらを参考に。
九九だけじゃない!アプリ開発にもゲーム開発にも使える、SelectMany! – Qiita

ForEach

foreachを簡単に使えます。
list3.ForEach (x => {
	Debug.LogError("list3の要素:" + x);
});

Exists

Listの中に条件にあったものがあるかをbool型で返します。
// 10以上の数字があるかどうか
bool listBool = list.Exists (x => x > 10);

Find

先ほどのExistsと似ているのですが、こちらは条件にあった最初の要素を返します。
// 要素に4があれば
var num = list.Find (x => x.Equals (4));

RemoveAll

条件にあった要素を削除します。
// 4以上の要素を削除します。
list.RemoveAll (x => x > 4);

最後に

これはList型だけではないのですが、foreachを使う場面で、上記のように色々メソッド(拡張メソッド)があるので、できればコードを短くかつ読みやすく書いていきたいですね。
おそらく、今回挙げたメソッド以外にも便利なものがあるはず。

【参考】
インデックスを使用してアクセスできる、厳密に型指定されたオブジェクトのリストを表します。

独習C# 第3版独習C# 第3版
ハーバート・シルト,エディフィストラーニング株式会社 矢嶋聡

翔泳社
売り上げランキング : 19359

Amazonで詳しく見る

Related Posts Plugin for WordPress, Blogger...