2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LINQってなに?

Posted at

LINQってなに?

1. LINQとは?

簡単に説明すると、こいつが登場したおかげで、ソースコード内で簡単にクエリ操作やグルーピングができるようになった!
実際に使うときの記述方法は後述しますが、書き方はほぼforeachと同じ書き方で、foreachの強化版みたいなもの

2. LINQの種類

LINQには、クエリ構文とメソッド構文と2種類あり、クエリ構文はやりたいことをそのまま書くだけで簡単!メソッド構文はラムダ式を使って書く!と覚えちゃいましょう
※メソッド構文では、WhereやSelectのような便利なメソッドも使えるぞ!

3. LINQの書き方

var list = new List<int> { 1, 84, 95, 95, 40, 6 };

// クエリ構文
var query = from x in list
           where x % 2 == 0
           orderby x
           select x * 3;

// メソッド構文(この記事ではこちらを記法を採用します)
var query = list
           .Where(x => x % 2 == 0)
           .OrderBy(x => x)
           .Select(x => x * 3);
ConsoleWriteLine(query);

18
80
168
3.1. SelectとWhereの使い方

※ SelectとWhereはSQL構文の時と全く違う!
メソッド構文で使用されるSelectはFindAllメソッド、WhereはConvertAllメソッドとほぼ同義。上のソースコードを書き換えると以下のようになる

var list = new List<int> { 1, 84, 95, 95, 40, 6 };

// クエリ構文
var query = from x in list
            where x % 2 == 0
            orderby x
            select x * 3;

// メソッド構文(この記事ではこちらを記法を採用します)
var query = list
            .FindAll(x => x % 2 == 0)
            .OrderBy(x => x)
            .ToList()  //OrderByで静的にIEnumerable型に変換されたためList型に変換する
            .ConvertAll(x => x * 3);
ConsoleWriteLine(query);
18
80
168
2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?