Suche senden
Hochladen
LINQ雑談
•
Als PPTX, PDF herunterladen
•
1 gefällt mir
•
1,081 views
Lee Choong Geun
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 15
Jetzt herunterladen
Empfohlen
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
Kiyotaka Kunihira
Lチカ入門の準備 おっさん達が好きなことを話す会
Lチカ入門の準備 おっさん達が好きなことを話す会
Tsutomu Sakaguchi
C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~
Fujio Kojima
ヤマハルータで始める自宅LANのすゝめ
ヤマハルータで始める自宅LANのすゝめ
Lee Choong Geun
TeslaCryptを焼き肉に変えた話
TeslaCryptを焼き肉に変えた話
Lee Choong Geun
Gradle入門
Gradle入門
Lee Choong Geun
もっと気軽に勉強会を
もっと気軽に勉強会を
Lee Choong Geun
簡単!Groovy入門
簡単!Groovy入門
Lee Choong Geun
Empfohlen
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
もがいているエンジニア集まれ~今度こそ英語をモノにしよう~
Kiyotaka Kunihira
Lチカ入門の準備 おっさん達が好きなことを話す会
Lチカ入門の準備 おっさん達が好きなことを話す会
Tsutomu Sakaguchi
C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~
Fujio Kojima
ヤマハルータで始める自宅LANのすゝめ
ヤマハルータで始める自宅LANのすゝめ
Lee Choong Geun
TeslaCryptを焼き肉に変えた話
TeslaCryptを焼き肉に変えた話
Lee Choong Geun
Gradle入門
Gradle入門
Lee Choong Geun
もっと気軽に勉強会を
もっと気軽に勉強会を
Lee Choong Geun
簡単!Groovy入門
簡単!Groovy入門
Lee Choong Geun
PBLのためのはじめてのGit
PBLのためのはじめてのGit
Lee Choong Geun
Effective Java輪読会 vol0
Effective Java輪読会 vol0
Lee Choong Geun
出、出~!勉強会参加技術向上思奴wwww
出、出~!勉強会参加技術向上思奴wwww
Lee Choong Geun
xamarin for android試してみた
xamarin for android試してみた
Lee Choong Geun
西区プログラム勉強会説明資料OSC発表版
西区プログラム勉強会説明資料OSC発表版
Lee Choong Geun
ハードウェアで遊ぼうよ
ハードウェアで遊ぼうよ
Lee Choong Geun
西区プログラム勉強会(仮)Ver2
西区プログラム勉強会(仮)Ver2
Lee Choong Geun
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Weitere ähnliche Inhalte
Mehr von Lee Choong Geun
PBLのためのはじめてのGit
PBLのためのはじめてのGit
Lee Choong Geun
Effective Java輪読会 vol0
Effective Java輪読会 vol0
Lee Choong Geun
出、出~!勉強会参加技術向上思奴wwww
出、出~!勉強会参加技術向上思奴wwww
Lee Choong Geun
xamarin for android試してみた
xamarin for android試してみた
Lee Choong Geun
西区プログラム勉強会説明資料OSC発表版
西区プログラム勉強会説明資料OSC発表版
Lee Choong Geun
ハードウェアで遊ぼうよ
ハードウェアで遊ぼうよ
Lee Choong Geun
西区プログラム勉強会(仮)Ver2
西区プログラム勉強会(仮)Ver2
Lee Choong Geun
Mehr von Lee Choong Geun
(7)
PBLのためのはじめてのGit
PBLのためのはじめてのGit
Effective Java輪読会 vol0
Effective Java輪読会 vol0
出、出~!勉強会参加技術向上思奴wwww
出、出~!勉強会参加技術向上思奴wwww
xamarin for android試してみた
xamarin for android試してみた
西区プログラム勉強会説明資料OSC発表版
西区プログラム勉強会説明資料OSC発表版
ハードウェアで遊ぼうよ
ハードウェアで遊ぼうよ
西区プログラム勉強会(仮)Ver2
西区プログラム勉強会(仮)Ver2
Kürzlich hochgeladen
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Kürzlich hochgeladen
(10)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
LINQ雑談
1.
LINQ雑談 西区プログラム勉強会 李充根
2.
LINQの雑談します • C#勉強会の時発表したものの使い回しです(笑) • 最近LINQを使ってみて面白かったので紹介しま す •
去年までは全然使ったことなかったのでまだわ からないことや曖昧なこといっぱいあるので変 なところはお構いなく突っ込んでね • C#勉強会の時は友人に「LINQよくわからん」と 言われました、わからないことは適宜聞いてく ださい
3.
LINQとは? • LinQ(リンク)は、2011年4月17日にデビューし た福岡県福岡市を拠点に活動する日本のローカ ルアイドルグループ。 • 2012年のスローガンは「出ろ!
しゃべれ! スベれ! 笑え! 馬鹿になれ! 笑う門には福来たる! 雑草ア イドルLinQよ行くぞ!」である (出典:wikipedia)
4.
LINQとは? • 統合言語クエリ (LINQ,
Language INtegrated Query)とは、.NET Framework 3.5において、様々 な種類のデータ集合に対して標準化された方法 でデータを問い合わせることを可能にする、言 語に統合された機能のことである。開発ツール はVisual Studio 2008から対応している。 (出典:wikipedia)
5.
つまり? • 簡単な書き方でデータの操作ができる • SQL、XML、リストなどを操作できる •
普通のメソッド構文(ラムダ式を使用)でもかけ るけどクエリ構文で書くと簡単! • 使わなきゃ損損! • いつまで古い文法で縛られているの?(C#全般) • • • • delegate event ラムダ式 etc…
6.
書き方 • メソッド構文 ワンライナー! ▫ var
hoge = numbers.Where(num => num % 2 == 0).OrderBy(n => n); • クエリ構文 ▫ var hoge= from num in numbers where num % 2 == 0 orderby num select num; ラムダ式 ラムダ式 可読性! SQL的構文
7.
ちなみに • JavaでもJava8からラムダ式が採用されて StreamAPIが実装されているので似たようなこと できるよ • でも一度streamに変換しなきゃいけないしナン カ垢抜けてない…… •
詳しくはきしださんの記事を↓ • http://d.hatena.ne.jp/nowokay/20130504
8.
なんで使い始めたか? • 数万件のCSVデータから数千件の検索用CSVと マッチするデータを抽出 • それと同時にアンマッチデータも抽出 •
社内で検討→excel?DB(SQL)?スクリプト? • エクセルは面倒なので論外、DBに一旦入れて処 理しても良かったけど客先にDB入れるの大変 • プログラム簡単に組んで処理しよう!
9.
よし、プログラムつくろう • 最初はパッと書いてぱっと修正できるスクリプ ト言語を検討 ▫ そもそも俺あんまりスクリプトかけない ▫
(Pythonかじった程度、PHPは読むだけ、Ruby??) • Java,C#ならわかる! ▫ そういえばデータ操作ならLINQ便利らしい SQLっぽいことやりつつデータの整形ができる 二つのデータのマッチもJOIN使えばすぐできる! • LINQ使えば楽じゃん!
10.
使ってみて • 予想以上に簡単にデータ処理ができる • 糖衣構文(クエリ構文)になっているから見やすい •
一方 ▫ アンマッチデータの取得どうするんだ? ▫ 最初は抽出データと検索データ照合したけどM*Nの時 間がかかって遅い! ▫ (抽出がほぼ一瞬なのに対して数分かかる) • vivisukeさんがN^2はダメでlog(N^2)までだよねって 言ってたことが身を持って実感できたよ
11.
Twitterで嘆いたら • すぐに面識のない人から返事が! ▫ (LINQ星人ってボットが拾ってくるみたい) ▫
GroupJoinを使えばいいんだよ! • GroupJoinはJoinしたものをグループでまとめて くれる • DefaultIfEmptyでマッチしなかったデータも使え るのでアンマッチリストも作れる!
12.
結果 • 速度が数百倍! • ほぼストレスなく実行できた •
その他 • 遅延評価(遅延実行?)→キャッシュないので重い 処理は気をつけないと何度も実行される • 回避するにはToList()でリスト化してしまう
13.
サンプルプログラム紹介
14.
その他 • Xamarin(mono)でももちろん使える ▫ Xamarin
for Android使えばAndroid開発でも使える 前回発表を参考 • 個人で開発する分ならいいけどグループで開発 するにはみんなのスキル向上が必要 ▫ とは言ってもすでに.net4.5の時代だしそろそろみ んな使えてもいいはず • スクリプト言語で同じような処理したいな ▫ 関数型使えばいいのかい? ▫ Haskell勉強中
15.
ご清聴ありがとうがございました!
Jetzt herunterladen