12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

C#Advent Calendar 2019

Day 20

C#の初心者が、LINQの便利な機能をまとめてみた

Last updated at Posted at 2019-12-19

はじめに

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

.cs
 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

.cs
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使ってみて下さい!
配列の処理が断然見やすくなります!!

参考

おすすめサイト

12
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?