SlideShare a Scribd company logo
1 of 12
Download to read offline
Linq to FUN
.NETノススメ
自己紹介
 知能4年  山中雅俊 HN: 猫ロキP
 WM向けラーメン大陸クローン「うどん島」
  作者 ←NEW!
 どちらかというと中間派閥
    サーバはLinux、クライアントはWindowsか
     Mac
 .NET大好き!
    OpenCvSharp使ったことあります。
Linqってなに?
   .NET Framework 3.5からの機能
   SQLっぽい文法でオブジェクトやデータベースに
    アクセスできる。
   .NETなので使える言語が豊富!
       C#だけじゃなくてVB.NET,C++/CLI,IronPythonほか
        いろいろ
   C言語で使えない?
       →C++/CLI使えばおk
       ラッパー使わなくてもOpenCVつかえるし!(たぶ
        ん
C#でのクエリ式
collection変数 から 10以上 の値を2乗して出
力する例

var query = from x in collection
     where x > 10
     select x * x;
めんどいのでメソッド形式で
collection変数 から 10以上 の値を2乗して出
力する例

var query =
    Collection .Where(x => x > 10)
    .Select(x => x * x);
どんな風にして取り出すの?
 foreachをつかうと楽々。



 foreach( var item in query )
 {
     hogehoge(item);
 }
ラムダ式
x => x > 10 ってどういう意味か
 この場合だと
bool function ( int x ){
      return x >10;
}
という関数を呼び出すという意味
 こんな関数とかいちいち作ってられませんよ
  ね、ってことで省略記法がある。
どんなときに使えるの?
 IEnumeableを拡張するメソッドなのでどん
  なのでも使える。
 IEnumeableを実装するクラスなら何でも使
  えるので、抽出処理が必要なときにすごく便
  利。
    for文で同じことしようとしたら死にますよね。
 使えるオブジェクトの例
    配列(int[] とかstring[]とかbyte[]とか)
    List<T>(Tは任意のオブジェクト)
Twitterでの抽出利用例
     架空のプログラムですが。
// 自分に対するリプライだけ抽出。
var reply = Timeline
      .Where(post => post.ReplyToUser == myUser );
// 文字列だけ抽出
var replyString = reply
      .Select(post => post.String);

//最後のやつだけ取り出す。
var lastReply = reply.Last();
まとめ
 .NETFrameworkサイコーッ!
 Linqもラムダ式も使えないC#なんてC#じゃ
  ないってぐらい便利です。っていうかC#
  じゃないです。もうすでにC#2.0はC#じゃな
  いです。
     Linuxではmonoを使えばLinqつかえるらしい?
 さっきから軽音部が練習してる音楽が気に
 なって仕方がない。
     なんかひとつだけレンのFire◎Flower混じって
      ね?
      ( ゚∀゚)アッオッエーイエイエー!!
      アッオー♪o(´Д`o)(o´Д`)oエーイエイエー♪
参考文献とか
 LINQ(++C++;     // 未確認飛行 C)
    http://ufcpp.net/study/csharp/sp3_linq.html
 LINQ:   .NET 統合言語クエリ(MSDN)
    http://msdn.microsoft.com/ja-
     jp/library/bb308959.aspx
オープンソースカンファレンス
2010北海道いってきます
 告知みたいな。
 俺はLOCAL学生部の函館地域代表としてセミ
  ナー(というか成果発表)をやります。
 日程:2010年6月26日(土) 10:00~18:30
 会場:札幌市産業振興センター 産業振興棟2F
 費用:無料
 学生には補助あります

More Related Content

What's hot

テンプレートメタプログラミング as 式
テンプレートメタプログラミング as 式テンプレートメタプログラミング as 式
テンプレートメタプログラミング as 式digitalghost
 
研究生のためのC++ no.4
研究生のためのC++ no.4研究生のためのC++ no.4
研究生のためのC++ no.4Tomohiro Namba
 
モナドをつくろう
モナドをつくろうモナドをつくろう
モナドをつくろうdico_leque
 
[第2版]Python機械学習プログラミング 第16章
[第2版]Python機械学習プログラミング 第16章[第2版]Python機械学習プログラミング 第16章
[第2版]Python機械学習プログラミング 第16章Haruki Eguchi
 
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々Peinan ZHANG
 
基礎構文班 5回目 繰り返し
基礎構文班 5回目 繰り返し基礎構文班 5回目 繰り返し
基礎構文班 5回目 繰り返しXMLProJ2014
 
Java オブジェクトの内部構造
Java オブジェクトの内部構造Java オブジェクトの内部構造
Java オブジェクトの内部構造Taku Miyakawa
 
[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章Haruki Eguchi
 
Constexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzzConstexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzz京大 マイコンクラブ
 
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたReal World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたblackenedgold
 
数式 → コード,文書:OpenGL計算ライブラリ実装の経験から
数式 → コード,文書:OpenGL計算ライブラリ実装の経験から数式 → コード,文書:OpenGL計算ライブラリ実装の経験から
数式 → コード,文書:OpenGL計算ライブラリ実装の経験からTokyo Tech (Tokyo Institute of Technology)
 
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCamlHaruka Oikawa
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1Susisu
 
[第2版]Python機械学習プログラミング 第13章
[第2版]Python機械学習プログラミング 第13章[第2版]Python機械学習プログラミング 第13章
[第2版]Python機械学習プログラミング 第13章Haruki Eguchi
 
C# linq入門 意図編
C# linq入門 意図編C# linq入門 意図編
C# linq入門 意図編Fujio Kojima
 

What's hot (20)

テンプレートメタプログラミング as 式
テンプレートメタプログラミング as 式テンプレートメタプログラミング as 式
テンプレートメタプログラミング as 式
 
研究生のためのC++ no.4
研究生のためのC++ no.4研究生のためのC++ no.4
研究生のためのC++ no.4
 
モナドをつくろう
モナドをつくろうモナドをつくろう
モナドをつくろう
 
[第2版]Python機械学習プログラミング 第16章
[第2版]Python機械学習プログラミング 第16章[第2版]Python機械学習プログラミング 第16章
[第2版]Python機械学習プログラミング 第16章
 
HDCLT
HDCLTHDCLT
HDCLT
 
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々
研究会20140618:進捗と闇Pythonistaのワンライナーテクニックを少々
 
基礎構文班 5回目 繰り返し
基礎構文班 5回目 繰り返し基礎構文班 5回目 繰り返し
基礎構文班 5回目 繰り返し
 
Coqでsprintf
CoqでsprintfCoqでsprintf
Coqでsprintf
 
Coqでsprintf
CoqでsprintfCoqでsprintf
Coqでsprintf
 
Java オブジェクトの内部構造
Java オブジェクトの内部構造Java オブジェクトの内部構造
Java オブジェクトの内部構造
 
[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章[第2版]Python機械学習プログラミング 第9章
[第2版]Python機械学習プログラミング 第9章
 
Constexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzzConstexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzz
 
Real World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみたReal World OCamlを読んでLispと協調してみた
Real World OCamlを読んでLispと協調してみた
 
大人のお型付け
大人のお型付け大人のお型付け
大人のお型付け
 
数式 → コード,文書:OpenGL計算ライブラリ実装の経験から
数式 → コード,文書:OpenGL計算ライブラリ実装の経験から数式 → コード,文書:OpenGL計算ライブラリ実装の経験から
数式 → コード,文書:OpenGL計算ライブラリ実装の経験から
 
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1
 
[第2版]Python機械学習プログラミング 第13章
[第2版]Python機械学習プログラミング 第13章[第2版]Python機械学習プログラミング 第13章
[第2版]Python機械学習プログラミング 第13章
 
C# linq入門 意図編
C# linq入門 意図編C# linq入門 意図編
C# linq入門 意図編
 
Emcjp item21
Emcjp item21Emcjp item21
Emcjp item21
 

Viewers also liked

北海道の南端で勉強会やります
北海道の南端で勉強会やります北海道の南端で勉強会やります
北海道の南端で勉強会やりますdeflis
 
Self-Employed Academy Overview
Self-Employed Academy OverviewSelf-Employed Academy Overview
Self-Employed Academy OverviewIASECP
 
Shaunequa Brathwaite's 2012 Portfolio
Shaunequa Brathwaite's 2012 PortfolioShaunequa Brathwaite's 2012 Portfolio
Shaunequa Brathwaite's 2012 PortfolioSaks Fifth Avenue
 
L1 media convergence
L1 media convergenceL1 media convergence
L1 media convergenceKat Rees
 
Shaunequa Brathwaite's Portfolio 2014
Shaunequa Brathwaite's Portfolio 2014Shaunequa Brathwaite's Portfolio 2014
Shaunequa Brathwaite's Portfolio 2014Saks Fifth Avenue
 
Windows使いのための仮想マシン入門
Windows使いのための仮想マシン入門Windows使いのための仮想マシン入門
Windows使いのための仮想マシン入門deflis
 
TwitterのOAuthってなんぞ?
TwitterのOAuthってなんぞ?TwitterのOAuthってなんぞ?
TwitterのOAuthってなんぞ?deflis
 
Căn hộ 91 phạm văn hai
Căn hộ 91 phạm văn haiCăn hộ 91 phạm văn hai
Căn hộ 91 phạm văn haiPhuong Hoang
 
Bigdata presentation
Bigdata presentationBigdata presentation
Bigdata presentationSatishAlerts
 
Cloud Core VPSにマイクラ鯖を立てた話
Cloud Core VPSにマイクラ鯖を立てた話Cloud Core VPSにマイクラ鯖を立てた話
Cloud Core VPSにマイクラ鯖を立てた話deflis
 
HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?deflis
 
Heartbleed脆弱性について
Heartbleed脆弱性についてHeartbleed脆弱性について
Heartbleed脆弱性についてdeflis
 
Synodiance > Formation SEO avec les experts du digital - 07/09/2013
Synodiance > Formation SEO avec les experts du digital - 07/09/2013 Synodiance > Formation SEO avec les experts du digital - 07/09/2013
Synodiance > Formation SEO avec les experts du digital - 07/09/2013 Search Foresight
 
Du contenu B2B pour les Nuls (et les PME)
Du contenu B2B pour les Nuls (et les PME)Du contenu B2B pour les Nuls (et les PME)
Du contenu B2B pour les Nuls (et les PME)Patrick Ducher
 

Viewers also liked (20)

北海道の南端で勉強会やります
北海道の南端で勉強会やります北海道の南端で勉強会やります
北海道の南端で勉強会やります
 
Self-Employed Academy Overview
Self-Employed Academy OverviewSelf-Employed Academy Overview
Self-Employed Academy Overview
 
Shaunequa Brathwaite's 2012 Portfolio
Shaunequa Brathwaite's 2012 PortfolioShaunequa Brathwaite's 2012 Portfolio
Shaunequa Brathwaite's 2012 Portfolio
 
L1 media convergence
L1 media convergenceL1 media convergence
L1 media convergence
 
Shaunequa Brathwaite's Portfolio 2014
Shaunequa Brathwaite's Portfolio 2014Shaunequa Brathwaite's Portfolio 2014
Shaunequa Brathwaite's Portfolio 2014
 
Practica
PracticaPractica
Practica
 
Nicole Larson
Nicole LarsonNicole Larson
Nicole Larson
 
T R O P A
T R O P AT R O P A
T R O P A
 
Windows使いのための仮想マシン入門
Windows使いのための仮想マシン入門Windows使いのための仮想マシン入門
Windows使いのための仮想マシン入門
 
Benefits of Using ROCG North Florida
Benefits of Using ROCG North FloridaBenefits of Using ROCG North Florida
Benefits of Using ROCG North Florida
 
TwitterのOAuthってなんぞ?
TwitterのOAuthってなんぞ?TwitterのOAuthってなんぞ?
TwitterのOAuthってなんぞ?
 
Căn hộ 91 phạm văn hai
Căn hộ 91 phạm văn haiCăn hộ 91 phạm văn hai
Căn hộ 91 phạm văn hai
 
Bigdata presentation
Bigdata presentationBigdata presentation
Bigdata presentation
 
Cloud Core VPSにマイクラ鯖を立てた話
Cloud Core VPSにマイクラ鯖を立てた話Cloud Core VPSにマイクラ鯖を立てた話
Cloud Core VPSにマイクラ鯖を立てた話
 
HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?
 
Heartbleed脆弱性について
Heartbleed脆弱性についてHeartbleed脆弱性について
Heartbleed脆弱性について
 
Conformisme 2.0
Conformisme 2.0Conformisme 2.0
Conformisme 2.0
 
Synodiance > Formation SEO avec les experts du digital - 07/09/2013
Synodiance > Formation SEO avec les experts du digital - 07/09/2013 Synodiance > Formation SEO avec les experts du digital - 07/09/2013
Synodiance > Formation SEO avec les experts du digital - 07/09/2013
 
Du contenu B2B pour les Nuls (et les PME)
Du contenu B2B pour les Nuls (et les PME)Du contenu B2B pour les Nuls (et les PME)
Du contenu B2B pour les Nuls (et les PME)
 
ergonomie
ergonomieergonomie
ergonomie
 

Similar to Linq To Fun

関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)啓 小笠原
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftTomohiro Kumagai
 
Final LINQ Extensions
Final LINQ ExtensionsFinal LINQ Extensions
Final LINQ ExtensionsKouji Matsui
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„和弘 井之上
 
Unityでlinqを使おう
Unityでlinqを使おうUnityでlinqを使おう
Unityでlinqを使おうYuuki Takada
 
Androidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningAndroidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningMiyoshi Kosuke
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~CHY72
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門bleis tift
 
多相な関数の定義から学ぶ、型クラスデザインパターン
多相な関数の定義から学ぶ、型クラスデザインパターン多相な関数の定義から学ぶ、型クラスデザインパターン
多相な関数の定義から学ぶ、型クラスデザインパターンTaisuke Oe
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexprGenya Murakami
 
基礎構文班20回目 コンストラクタ 継承
基礎構文班20回目 コンストラクタ 継承基礎構文班20回目 コンストラクタ 継承
基礎構文班20回目 コンストラクタ 継承XMLProJ2014
 
.NET系開発者から見たJava
.NET系開発者から見たJava.NET系開発者から見たJava
.NET系開発者から見たJavableis tift
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトTaketo Sano
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門Shiqiao Du
 
TensorFlow Operation 作ってみた
TensorFlow Operation 作ってみたTensorFlow Operation 作ってみた
TensorFlow Operation 作ってみたTakuya Sakamoto
 
言語処理系入門€10
言語処理系入門€10言語処理系入門€10
言語処理系入門€10Kenta Hattori
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexprGenya Murakami
 

Similar to Linq To Fun (20)

C#勉強会
C#勉強会C#勉強会
C#勉強会
 
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswift
 
Final LINQ Extensions
Final LINQ ExtensionsFinal LINQ Extensions
Final LINQ Extensions
 
What is template
What is templateWhat is template
What is template
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
 
Unityでlinqを使おう
Unityでlinqを使おうUnityでlinqを使おう
Unityでlinqを使おう
 
Androidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningAndroidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearning
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門
 
多相な関数の定義から学ぶ、型クラスデザインパターン
多相な関数の定義から学ぶ、型クラスデザインパターン多相な関数の定義から学ぶ、型クラスデザインパターン
多相な関数の定義から学ぶ、型クラスデザインパターン
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
基礎構文班20回目 コンストラクタ 継承
基礎構文班20回目 コンストラクタ 継承基礎構文班20回目 コンストラクタ 継承
基礎構文班20回目 コンストラクタ 継承
 
.NET系開発者から見たJava
.NET系開発者から見たJava.NET系開発者から見たJava
.NET系開発者から見たJava
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
 
TensorFlow Operation 作ってみた
TensorFlow Operation 作ってみたTensorFlow Operation 作ってみた
TensorFlow Operation 作ってみた
 
言語処理系入門€10
言語処理系入門€10言語処理系入門€10
言語処理系入門€10
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
 
C++勉強会
C++勉強会C++勉強会
C++勉強会
 

Linq To Fun