2012年03月15日
C# LINQラムダ式入門 1. 便利なとこから始めよう
C#は非常に書きやすいし、見やすい言語です。
が、LINQとラムダ式に関しては、
かなり特殊な見栄えでとっつきにくい。
これが、僕の第一印象です。
C#は、数年前に書き始めましたが、
最近やっと自分の中でこれらが馴染んだ気がするので、
少しずつ紹介していきたいと思います。
まず、初めてこれらのコードを見た人は、
二、三度見返したと思います。
「なんだ、これは…」
そう思ったでしょう。
今だから思うのですが、最初は無理に理解しようとしない方がいいと思います。
簡単便利な使い方から初めて、
自分の中で少しずつ咀嚼(そしゃく)するのがいいです。
最初に専門書の説明をだらだら見た結果、
僕は一時期LINQ嫌いになってしまいました。
だから、小難しいことは最初はやめましょう。
というわけで、最もわかりやすくて使いやすくて
使用頻度か高い(自分調べ)Whereさんから慣れ親しみ始めましょう。
次のようなコードがあるとします。
int[] ages = new int[]{11, 10, 21, 22, 30};
int sumOfAdultAges = 0;
foreach (int age in ages)
{
if ( 20 <= age )
{
sumOfAdultAges+=age;
}
}
要するに、foreach, ifパターンです。
これをLINQでかっこよく書くと、こうなります。
int[] ages = new int[]{11, 10, 21, 22, 30};
int sumOfAdultAges = 0;
foreach (int age in ages.Where(x => 20 <= x))
{
sumOfAdultAges+=age;
}
なんか、かっこいいですよね。
多分、説明もいらないですよね。
え、いりますか?いや、体で覚えて下さい。
Whereの引数の型なんか無視、無視。
in 〜.Where(x => ・・・)
をインテリセンスの力を借りながら、書けるように
なればいいだけなんですから。
気をつけることは、
「・・・」部分にif ( )の中に書いていたものを書くぐらいですかね
このレベルであれば、ほどよくわかりよいですよね?
第一歩はここからで、これで十分です。
私が初めて実務で書いたLINQもこれが最初です。
「if 書いたらいいやん」と思かもしれません。
もちろん書いてもいいですよ。
ifで、書くほうがいいことだって多々あります。
ここで一つ大事なことなのですが、
Q. なぜLINQを使うのか?
ということです。答えは簡単。
A. LINQで書いたほうが、美しいから
LINQなんてただの表現手法の一つに過ぎません。
LINQがなくてもコードは書けます。
使うかどうかは、自身の美的感覚に従って下さい。(注1)
LINQで書いたほうが美しければ、LINQを使えばいいし、
LINQを使うと逆に見にくくなる場合は使うべきではない。
まぁ、そんなもんです。
難しく考える必要も、無理に使用する必要も、とりあえずはないですよ。
注1:美しく書く以外の目的もあるにはあります
最終的には、More Effective C#の内容を
読めるところまで手伝えたらなぁと思っています。
”美しく書く”以外の目的を早く知りたい人は、
More Effective C#をフライングして読んでみて下さい。
ただし、LINQに慣れてから読んで下さいね。
でなければ、消化不良を起こします。
私のように(笑)
![](https://www12.a8.net/0.gif?a8mat=1ZMRJR+FUDAB6+249K+BWGDT)
C# LINQラムダ式入門 1. 便利なとこから始めよう
C# LINQラムダ式入門 2. 次のLINQ構文
C# LINQラムダ式入門 3. 後はとりあえず俯瞰してみる
C# LINQラムダ式入門 4. LINQの引数の型を理解する
C# LINQラムダ式入門 5. ラムダ式をもう少し詳しく見てみる
が、LINQとラムダ式に関しては、
かなり特殊な見栄えでとっつきにくい。
これが、僕の第一印象です。
C#は、数年前に書き始めましたが、
最近やっと自分の中でこれらが馴染んだ気がするので、
少しずつ紹介していきたいと思います。
まず、初めてこれらのコードを見た人は、
二、三度見返したと思います。
「なんだ、これは…」
そう思ったでしょう。
今だから思うのですが、最初は無理に理解しようとしない方がいいと思います。
簡単便利な使い方から初めて、
自分の中で少しずつ咀嚼(そしゃく)するのがいいです。
最初に専門書の説明をだらだら見た結果、
僕は一時期LINQ嫌いになってしまいました。
だから、小難しいことは最初はやめましょう。
というわけで、最もわかりやすくて使いやすくて
使用頻度か高い(自分調べ)Whereさんから慣れ親しみ始めましょう。
次のようなコードがあるとします。
int[] ages = new int[]{11, 10, 21, 22, 30};
int sumOfAdultAges = 0;
foreach (int age in ages)
{
if ( 20 <= age )
{
sumOfAdultAges+=age;
}
}
要するに、foreach, ifパターンです。
これをLINQでかっこよく書くと、こうなります。
int[] ages = new int[]{11, 10, 21, 22, 30};
int sumOfAdultAges = 0;
foreach (int age in ages.Where(x => 20 <= x))
{
sumOfAdultAges+=age;
}
なんか、かっこいいですよね。
多分、説明もいらないですよね。
え、いりますか?いや、体で覚えて下さい。
Whereの引数の型なんか無視、無視。
in 〜.Where(x => ・・・)
をインテリセンスの力を借りながら、書けるように
なればいいだけなんですから。
気をつけることは、
「・・・」部分にif ( )の中に書いていたものを書くぐらいですかね
このレベルであれば、ほどよくわかりよいですよね?
第一歩はここからで、これで十分です。
私が初めて実務で書いたLINQもこれが最初です。
「if 書いたらいいやん」と思かもしれません。
もちろん書いてもいいですよ。
ifで、書くほうがいいことだって多々あります。
ここで一つ大事なことなのですが、
Q. なぜLINQを使うのか?
ということです。答えは簡単。
A. LINQで書いたほうが、美しいから
LINQなんてただの表現手法の一つに過ぎません。
LINQがなくてもコードは書けます。
使うかどうかは、自身の美的感覚に従って下さい。(注1)
LINQで書いたほうが美しければ、LINQを使えばいいし、
LINQを使うと逆に見にくくなる場合は使うべきではない。
まぁ、そんなもんです。
難しく考える必要も、無理に使用する必要も、とりあえずはないですよ。
注1:美しく書く以外の目的もあるにはあります
最終的には、More Effective C#の内容を
読めるところまで手伝えたらなぁと思っています。
”美しく書く”以外の目的を早く知りたい人は、
More Effective C#をフライングして読んでみて下さい。
ただし、LINQに慣れてから読んで下さいね。
でなければ、消化不良を起こします。
私のように(笑)
![]() |
新品価格 |
![](https://www12.a8.net/0.gif?a8mat=1ZMRJR+FUDAB6+249K+BWGDT)
C# LINQラムダ式入門 1. 便利なとこから始めよう
C# LINQラムダ式入門 2. 次のLINQ構文
C# LINQラムダ式入門 3. 後はとりあえず俯瞰してみる
C# LINQラムダ式入門 4. LINQの引数の型を理解する
C# LINQラムダ式入門 5. ラムダ式をもう少し詳しく見てみる
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
投稿者:勝綾正テル|12:31|C# LINQ ラムダ式 入門
この記事へのコメント