如雨露の日記

学んだことを書いていくサイトです。もし誤りがあれば指摘していただけると嬉しいです。

LINQを使ってみる

C#LINQなるものがあるらしい。

というのを前から知っていたのですが、使う機会がなく半年くらいそのままでした。

しかし先日に後輩からUniRx便利ですよっ!!ってめっちゃ押されたので調べてみた

便利そうですね(小並)。

マウスのダブルクリックとか値を監視してイベントの発生とかしてくれるのはよさそう。Reactive Extensionsっていうらしい。

けれども、私は知識として前提条件のLINQを何も知らない!!ということでとりあえず触ってみることにしました。

まずは資料をネット探して、読んで同じ問題を解いてみました。

Unityで書いてます。(調べたとき丁度Unityを開いていたので)

まずは、最初に普通にコードを書いてみて

f:id:ninataka_japan:20150708172836j:plain

外部に数列生成部分を分けてみる。

f:id:ninataka_japan:20150708172833j:plain

f:id:ninataka_japan:20150708172835j:plain

それをLINQで取得するようにしてみる。

 

f:id:ninataka_japan:20150708172838j:plain

・・・とりあえず完成。

GetNaturalNamberからTakeWhileで条件を満たすものだけをWhereに流して、Whereで問題にそった3と5の倍数のみを取り出してSumで合計する。

ってことでいいのでしょうか。

書いてある事だけじゃ写経になってしまいますのでProject Eulerから問5を解いてみました。わざわざLINQ使ってすることではないのは分かっていますが、学習用ということで…w

f:id:ninataka_japan:20150708172839j:plain

もうチョイ抽出条件綺麗に書きたいなって感想しかない・・・

書き方は分かりました。が、ラムダ式とかまだ知らないことがさらに見つかったのでまだまだ覚えるべきことはありますね。

他の人の役には立たないけど、備忘録ということで今回の記事です。以上。