はじめに
C#を始めてから、2,3ヵ月くらい経ちました。
C#を少し使えるようになったので、LINQという機能についてまとめてみようと思います。
すこし違う話が入ってるかもしれないので、ご了承ください。
まず、LINQとは
LINQとは、コレクション(配列など)の要素を処理するメソッドを集めたライブラリです。
使用するためには、using System.Linq
を最初に書く必要があります。
便利な関数(メソッド)
-
Allメソッド
配列内の要素すべてが、条件を満たすかを判定してくれます。
本来なら、whileやforeachの中にif文を書いて、処理しなければならないことをAllメソッド一つでできるので便利です。 -
Anyメソッド
Allメソッドと使い方は同じ感じです。
Anyは、一つでも条件に合致するものがあれば、trueを返します。 -
Max,Minメソッド
Maxは配列内の最大値、Minは配列内の最小値を求めてくれます。
これらの計算は、LINQを使わずに書くと少し長めになりますがLINQのメソッドを使えば、1行で済みます! -
Distinctメソッド
配列内の重複要素を除いた配列を返してくれます。
LINQを使わずに書くと、if文とforeachなどを使って、配列をもう一つ生成しないといけないので少し面倒です。このメソッドを使えば1行で済む!! -
Sum,Averageメソッド
Sumは配列の要素の合計、Averageは配列内の要素の平均を求めてくれます。
実際に書いて比較してみました。
使用してないVer
class Program
{
static void Main(string[] args)
{
List<int> val = new List<int> { 1, 2, 3, 4, 5 } ;
int sum = 0;
foreach(var i in val)
{
sum += i;
}
Console.WriteLine(sum);
}
}
使用したVer
class Program
{
static void Main(string[] args)
{
List<int> val = new List<int> { 1, 2, 3, 4, 5 } ;
var sum = val.Sum();
Console.WriteLine(sum);
}
}
LINQのメソッドを使ったほうがすっきりしてみえますよね!
LINQの利点
自分で書くと長くなる処理を関数でやってくれるから、プログラムの読みやすさも上がるし、自分で書かなきゃいけない処理が減るので便利。
最後に
みなさんもC#でぜひLINQ使ってみて下さい!
配列の処理が断然見やすくなります!!