LINQ

皆さんお疲れ様です。
最近日も短くなり、肌寒い日が続いてきましたね。
自分は最近、人生は初メイド喫茶に行ってきました。
はまってしまう人の気持ちがわかるくらい楽しかったです。

さて、本題ですが
自分は仕事中C#を触ることがほとんどなんですが、今回はループ処理を簡潔にできるLINQというのを紹介しようと思います。

LINQ[Language INtegrated Query]統合言語クエリ
LINQとは、.NET Frameworkの仕様の一つで、様々な種類のデータ構造に対する操作や問い合わせなどを、プログラミング言語
で書かれたプログラム中に一定の書式で直に記述することができるもの

IT用語辞典  e-words

例として、foeach文の処理をLINQに置き換えたものをあげます

List<int> testList = new List<int>();
foreach(string s in source) {
    int length = s.Length;
    if (length >= 4){
        testList.Add(length);
    }
}

foreach (int result in myList){
            Debug.Log(result.ToString());
}

次がforeachをLINQに置き換えたものです。

IEnumerable<int> testList = source.Select(s => s.Length)
.Where(l => l >= 4);

foreach(int result in testList){
            Debug.Log(result.ToString());
}

testListに格納される値は同じですが、LINQを使用したほうが短いかつ可読性が高いと思います。
ただ、LINQは予約処理の為、select().where()を使用した段階では実行されません。
要素のアクセスするタイミングで初めて実行されます。

このタイミングで実行
foreach(int result in testList){
            Debug.Log(result.ToString());
}

LINQはデータを操作するためのメソッドがたくさんあり、自作の処理を作らなくていい場合が多いのでバグが発生しにくいため
C#を触るときは是非使用してみてください。
おしまい。