VisualStudio2008より追加された便利で強力な機能
統合言語クエリ (LINQ : Language Integrated Query)
ちょっと使ってみると、意外と難しいし、テクニック的にも奥が深いものです。
関数型言語にしかないような機能ラムダ式(Lambda式)などはオブジェクト指向とは一味違う機能です。
DataBaseの操作にも、Xmlの操作にも、さらにもっと単純な配列なコンテナにさえ機能する
言語共通・高汎用な統合言語クエリを皆で一緒にマターリ勉強しましょう。
質問、便利なマイテクニックの発表、いろいろやっちゃってください。
探検
【VB.NET】LINQ友の会【C#, C♯, C#】
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2008/02/09(土) 23:51:34868デフォルトの名無しさん
2014/10/16(木) 13:52:30.47ID:6vjTSFjE ポインタが理解できずにCから逃げたコボラーとか実際に存在するから
Linq程度が理解できなくても不思議じゃないわ
Linq程度が理解できなくても不思議じゃないわ
869デフォルトの名無しさん
2014/10/16(木) 19:39:02.40ID:i0dYtbuj 保守、テストに向かないラムダ式が業務コードに採用されることはない。
採用okした馬鹿SEがいたら初めから保守する気がないやっつけプロジェクトだと客は思え。
採用okした馬鹿SEがいたら初めから保守する気がないやっつけプロジェクトだと客は思え。
870デフォルトの名無しさん
2014/10/16(木) 20:34:37.25ID:6YdcwtfE 保守、テストに向く向かないの基準は?
871デフォルトの名無しさん
2014/10/16(木) 21:13:46.98ID:i0dYtbuj 当然予算である。分りきったこと。
872デフォルトの名無しさん
2014/10/16(木) 21:22:34.15ID:6YdcwtfE お前の言ってること理解するの無理そうだわ
873デフォルトの名無しさん
2014/10/16(木) 21:26:50.67ID:i0dYtbuj おまえがPMになる頃に分るよ。LINQ?ないでしょ!!と言うようになる。
874デフォルトの名無しさん
2014/10/16(木) 21:32:16.90ID:6YdcwtfE PMってアスペでもできるんだ…
875デフォルトの名無しさん
2014/10/16(木) 21:33:13.95ID:JIq8zDai 相手を納得させる説明ができない場合、相手の理解能力の不足へと責任を転嫁します
876デフォルトの名無しさん
2014/10/16(木) 21:44:06.18ID:i0dYtbuj >>874
ほんとアスペ連呼厨はアスペはだったな。じゃあ予算以外に何の基準あると言うの?
何の説明もなしに理解できない連呼して突然に脈絡もなくアスペとか言われてもな意味不明。
それとも基準と言ってるのはもしかして、
LINQが保守しにくいという理由が分らないという素人PGレベルの話?w
さすがにそれはこっちも想定外。相手は素人の客ではなくPGだと思って話しているから。ブログラム板だし。
ほんとアスペ連呼厨はアスペはだったな。じゃあ予算以外に何の基準あると言うの?
何の説明もなしに理解できない連呼して突然に脈絡もなくアスペとか言われてもな意味不明。
それとも基準と言ってるのはもしかして、
LINQが保守しにくいという理由が分らないという素人PGレベルの話?w
さすがにそれはこっちも想定外。相手は素人の客ではなくPGだと思って話しているから。ブログラム板だし。
877デフォルトの名無しさん
2014/10/16(木) 22:54:35.36ID:6YdcwtfE プログラム板だから技術的な観点から保守・テストの向き不向きを聞いたつもりだったんだが、唐突に予算の話だからさっぱりだったんだ…
聞き方が悪かったな
聞き方が悪かったな
878デフォルトの名無しさん
2014/10/16(木) 23:18:46.93ID:/G2R7ViG879デフォルトの名無しさん
2014/10/17(金) 01:41:05.30ID:jEl4dhul プログラム技術の板なのになんでいきなりプログラム技術のレイヤーすっ飛ばして予算がどうこう言い出すんだ
いずれにしろ「分かりきった事だ」しか言ってないし
いずれにしろ「分かりきった事だ」しか言ってないし
880デフォルトの名無しさん
2014/10/17(金) 01:43:38.66ID:KUlLf+fJ LINQが分かる保守要員は単価が高いとか
881デフォルトの名無しさん
2014/10/17(金) 04:18:11.25ID:y4CtUirl 多少単価が上がっても、それを上回る生産性があればペイするわけで
規模も生産性も無視して予算って言われてもなぁ
まともなマネージャーの発言とは思えん
まあ俺がプログラマなら、クエリ式はともかく今時メソッド式すら禁止でプログラム組みたくないが
規模も生産性も無視して予算って言われてもなぁ
まともなマネージャーの発言とは思えん
まあ俺がプログラマなら、クエリ式はともかく今時メソッド式すら禁止でプログラム組みたくないが
882デフォルトの名無しさん
2014/10/17(金) 06:28:12.62ID:BQDquYYG883デフォルトの名無しさん
2014/10/17(金) 09:09:57.62ID:O3Ha9Xaq 他に誰も読めないからC言語禁止、BASICで書け、とか言って滅んでいった馬鹿が
たくさんいたわけだが、滅んでいった奴のことは誰も覚えてないから、あとからあとから
同じような馬鹿は居るわけだよなw
たくさんいたわけだが、滅んでいった奴のことは誰も覚えてないから、あとからあとから
同じような馬鹿は居るわけだよなw
884デフォルトの名無しさん
2014/10/17(金) 11:26:54.10ID:ztI0lRaF 適切な粒度のLINQが一番保守しやすい。
でもLINQで複雑なの組むと保守し辛いのには同意する。
かと言って何重にもネストしたforeachの保守性が優れているかって言うとそうでもないしなー。
チーム開発では、副作用あるようなのはforeachに任せて、LINQではデータの抽出に専念するみたいな何らかの指標は必要だと思う。
「馬鹿には扱えないから禁止な!」って言われるような地獄じゃなかった事を心底嬉しく思うわ…そういう環境の人はご愁傷様。
でもLINQで複雑なの組むと保守し辛いのには同意する。
かと言って何重にもネストしたforeachの保守性が優れているかって言うとそうでもないしなー。
チーム開発では、副作用あるようなのはforeachに任せて、LINQではデータの抽出に専念するみたいな何らかの指標は必要だと思う。
「馬鹿には扱えないから禁止な!」って言われるような地獄じゃなかった事を心底嬉しく思うわ…そういう環境の人はご愁傷様。
885デフォルトの名無しさん
2014/10/18(土) 08:25:15.69ID:N4WCWzJQ COBOLのプロジェクトに必ずいるよな。Perlでいいじゃんという馬鹿が。
886デフォルトの名無しさん
2014/10/18(土) 10:47:32.67ID:z8db1sck887デフォルトの名無しさん
2014/10/19(日) 06:28:27.49ID:Ug95Fahb >>886
何それ?と思ってググってきた。
http://gushwell.ldblog.jp/archives/52257023.html
痒いところに手が届く感じが嬉しいな。
この中のいくつかは自分で似たようなの作って使ってたわ
何それ?と思ってググってきた。
http://gushwell.ldblog.jp/archives/52257023.html
痒いところに手が届く感じが嬉しいな。
この中のいくつかは自分で似たようなの作って使ってたわ
888デフォルトの名無しさん
2014/10/19(日) 13:32:20.74ID:fmyCWKK2 ラムダ式禁止ってLINQのIEnumerableな拡張メソッドまでならいいのか?
889デフォルトの名無しさん
2014/10/19(日) 14:47:06.09ID:TzxHDjoa 昔懐かしき匿名デリゲート使えばいいとかご苦労さんだよな
int[] arr = { -3, -2, -1, 0, 1, 2, 3 };
var e = arr.Where( delegate( int n ){ return n < 0; } );
int[] arr = { -3, -2, -1, 0, 1, 2, 3 };
var e = arr.Where( delegate( int n ){ return n < 0; } );
890デフォルトの名無しさん
2014/10/19(日) 14:51:24.13ID:OT6uOxYP891デフォルトの名無しさん
2014/10/19(日) 17:46:05.17ID:Ug95Fahb var arr = { -3, -2, -1, 0, 1, 2, 3 };
foreach (var item in arr.Where( x => x < 0 ))
arrをvarにしてラムダ式の()とreturn省略してforeachに突っ込んだら発狂して死ぬんじゃなかろうか?
foreach (var item in arr.Where( x => x < 0 ))
arrをvarにしてラムダ式の()とreturn省略してforeachに突っ込んだら発狂して死ぬんじゃなかろうか?
892デフォルトの名無しさん
2014/10/20(月) 00:00:11.38ID:sNo35b4/ >>887
準公式でForEachが定義されているだけでも使う価値がありますわ
準公式でForEachが定義されているだけでも使う価値がありますわ
893デフォルトの名無しさん
2014/10/20(月) 02:40:31.01ID:dDC6hlm3 このスレはオワコン臭が半端ねーな。
894デフォルトの名無しさん
2014/10/20(月) 10:59:30.63ID:grN5nCeO 出たばっかりの2008年当時は、皆手探りで専用スレに情報を集約する必要があったけど
今では.NET開発者の間に根付いて、初心者質問スレで普通にやり取りされるようになってるからね。
LINQ専用スレは役目を終えた感がある。
今では.NET開発者の間に根付いて、初心者質問スレで普通にやり取りされるようになってるからね。
LINQ専用スレは役目を終えた感がある。
895デフォルトの名無しさん
2014/11/07(金) 19:33:17.04ID:Uqmk+GoL LINQの大冒険てなに?
896デフォルトの名無しさん
2014/11/08(土) 05:44:51.34ID:4oPVaJN5 リンクの冒険ならゼルダの伝説2作目
897デフォルトの名無しさん
2014/11/08(土) 06:09:31.24ID:/bwN1tJ/ 最初のころ友人に「リンク?リンキューって読むんだよ」って教えられて信じた俺は負け組
898デフォルトの名無しさん
2014/11/08(土) 14:37:10.40ID:6TnQOBwl >>897
おれなんかラインキュー?だったぞw
おれなんかラインキュー?だったぞw
899デフォルトの名無しさん
2014/11/08(土) 15:44:34.92ID:tdIoNnK+ LINQってどう使うんだろうと思ってたけど、
使い方が解ると糞便利過ぎて吹いた。
使い方が解ると糞便利過ぎて吹いた。
900デフォルトの名無しさん
2014/11/08(土) 16:14:34.06ID:SdfgCKME linqとかgenericとかそんなもん覚えて
嬉しそうに使っている奴らは馬鹿じゃあ
ないかと思う。俺みたいなレベルになると
そんなもんは使わない。何故なら難しいから。
嬉しそうに使っている奴らは馬鹿じゃあ
ないかと思う。俺みたいなレベルになると
そんなもんは使わない。何故なら難しいから。
901デフォルトの名無しさん
2014/12/28(日) 13:29:00.59ID:u+9X44C3 つまんね
11点
11点
902デフォルトの名無しさん
2015/02/01(日) 01:19:30.25ID:h1yaZPC8 でる でる
でる でる
でる でる
903デフォルトの名無しさん
2015/02/10(火) 19:06:51.43ID:8+t6RdsT なんだこれPLINQで何がどう並列化されるか理解してない典型じゃん…
ttp://www.atmarkit.co.jp/fdotnet/csharp4/csharp4_03/csharp4_03_03.html
ttp://www.atmarkit.co.jp/fdotnet/csharp4/csharp4_03/csharp4_03_03.html
904デフォルトの名無しさん
2015/02/12(木) 11:54:05.46ID:RvtVdJIV PLINQは「C#によるマルチコアのための非同期/並列処理プログラミング」を読んで理解した
他にも多数
他にも多数
905デフォルトの名無しさん
2015/02/14(土) 13:20:03.23ID:+2HgOaot906デフォルトの名無しさん
2015/07/02(木) 08:51:48.28ID:D2cUXZKe >>903
この人内容もさることながら毎回オーバーな言い回しが好きだよね。もっと淡々と書いてほしい。
この人内容もさることながら毎回オーバーな言い回しが好きだよね。もっと淡々と書いてほしい。
907デフォルトの名無しさん
2015/07/23(木) 13:28:14.95ID:8sgAL201 LINQ初心者なんですが、JOIN ON の後に固定文字の条件(o.type_flg Equals "1")を追加したいのですが、
以下の様に書くとエラーになります。
どの様に書けば良いか教えて頂けないでしょうか?
From l In db.table_sub _
Join m In db.table_hist.DefaultIfEmpty On l.cd Equals m.cd _
Join n In db.table_type.DefaultIfEmpty On m.cd_type Equals n.cd_type _
Join o In db.table_jobtype.DefaultIfEmpty On m.cd Equals o.cd And _
m.startdate Equals o.startdate And o.type_flg Equals "1" _ ←"1"この部分
Join p In db.table_office On m.officeid Equals p.officeid _
Where _
l.officeid = pofficeid(cnt) And _
l.startdate <= pDate And _
l.enddate > pDate
以下の様に書くとエラーになります。
どの様に書けば良いか教えて頂けないでしょうか?
From l In db.table_sub _
Join m In db.table_hist.DefaultIfEmpty On l.cd Equals m.cd _
Join n In db.table_type.DefaultIfEmpty On m.cd_type Equals n.cd_type _
Join o In db.table_jobtype.DefaultIfEmpty On m.cd Equals o.cd And _
m.startdate Equals o.startdate And o.type_flg Equals "1" _ ←"1"この部分
Join p In db.table_office On m.officeid Equals p.officeid _
Where _
l.officeid = pofficeid(cnt) And _
l.startdate <= pDate And _
l.enddate > pDate
908デフォルトの名無しさん
2015/07/23(木) 19:33:32.73ID:lwPsZC44 メソッドチェイン以外は分りかねます
909デフォルトの名無しさん
2015/07/23(木) 20:03:25.61ID:Lq9yJ8hV クエリ構文は拒否反応が出てしまう
910デフォルトの名無しさん
2015/07/23(木) 20:28:21.62ID:7HbY3dvy 俺ゃVBに虫酸が走るんだがそれはともかく
JOINの意味分かってっか?
2つのテーブルをお互いの同じ値の列で結合するものだぞ
定数とどうやって結合すんだよ
そういう時はサブクエリ使え
JOINの意味分かってっか?
2つのテーブルをお互いの同じ値の列で結合するものだぞ
定数とどうやって結合すんだよ
そういう時はサブクエリ使え
911デフォルトの名無しさん
2015/07/23(木) 20:54:22.15ID:8sgAL201 ありがとうございます。
試してみます。
試してみます。
912デフォルトの名無しさん
2015/08/02(日) 21:53:38.84ID:wrwHaPDN VB.NETとかダセーもんで
LINQを使おうって発想が凄いな。
LINQを使おうって発想が凄いな。
913デフォルトの名無しさん
2015/08/03(月) 06:58:51.39ID:gHG/w8Da >>912
それで夏休みの宿題はC#にしたのか
それで夏休みの宿題はC#にしたのか
914デフォルトの名無しさん
2015/12/03(木) 01:30:32.82ID:R7RcesKX しばらく.Netから離れてたけどこんなものができてたのか
これはSQLに慣れてる人ならいいけど、文字列クエリーではなく
複数の言語が生で書かれてるソースなんか見たら
初心者にはまったく意味が分からず憤死しそうだな
これはSQLに慣れてる人ならいいけど、文字列クエリーではなく
複数の言語が生で書かれてるソースなんか見たら
初心者にはまったく意味が分からず憤死しそうだな
915デフォルトの名無しさん
2015/12/12(土) 01:59:59.54ID:DzcDIrny すーーぐSQLと同じだと思う輩わくよな
メソッド式で覚えろや
mapやfilterも無い言語やってましたってバレバレだぞ
メソッド式で覚えろや
mapやfilterも無い言語やってましたってバレバレだぞ
916デフォルトの名無しさん
2015/12/12(土) 16:59:58.44ID:5wAisFzW データ型がDBに依存しないSQL風インターフェースってだけやで
こんなの業務では怖くて使えんだろう
こんなの業務では怖くて使えんだろう
917デフォルトの名無しさん
2016/03/22(火) 00:38:41.34ID:b9snC88Q >>916
うわ…
うわ…
918デフォルトの名無しさん
2016/03/22(火) 06:20:38.49ID:2k6rwd23 私の年収低すぎ…?
919デフォルトの名無しさん
2016/04/03(日) 00:17:32.34ID:AE7hevoP 上杉謙信:「うわ・・・私の名前・・・うえすぎ・・・」
920デフォルトの名無しさん
2016/04/03(日) 01:07:42.06ID:Nd9Yarcw >>916
いまだにこんなやついるんだな
いまだにこんなやついるんだな
921デフォルトの名無しさん
2016/04/03(日) 21:14:37.69ID:Idd70VLN WPF同様、普及に失敗したのは紛れもない事実。
922デフォルトの名無しさん
2016/04/03(日) 22:32:25.91ID:Nd9Yarcw >>921
何が?
何が?
923デフォルトの名無しさん
2016/04/04(月) 03:30:04.72ID:yiUZrBzl >>921
普及に失敗したんじゃなくてお前みたいな頭の固い奴に理解できないだけの話
普及に失敗したんじゃなくてお前みたいな頭の固い奴に理解できないだけの話
924デフォルトの名無しさん
2016/04/04(月) 18:28:45.10ID:49o5DZm/ >>921
ここでは触れてはいけいなことをw 馬鹿が発狂するだろw
ここでは触れてはいけいなことをw 馬鹿が発狂するだろw
925デフォルトの名無しさん
2016/04/04(月) 19:40:00.45ID:jTJ+Sr63 >>924
日本語www
日本語www
926デフォルトの名無しさん
2016/06/24(金) 12:23:58.14ID:g5yuDP9p 普及したかどうかはどうでもいい
便利なことに変わりはない
便利なことに変わりはない
927デフォルトの名無しさん
2016/10/08(土) 09:23:14.30ID:vL+1Z5yj MSは、クエリ式とVB.NETを、そろそろ整理して良いんじゃね?
役目は果たしたよ。
役目は果たしたよ。
928デフォルトの名無しさん
2016/10/10(月) 16:21:53.01ID:tK6m98b5 何回何回負けたって〜
まだ夢の途中〜
生まれ育った地元のために
歌って歌って踊るんだ
イエィ!
まだ夢の途中〜
生まれ育った地元のために
歌って歌って踊るんだ
イエィ!
929デフォルトの名無しさん
2016/10/24(月) 04:53:33.41ID:tBsMM9XP LINQに書き換えるとすげー遅くなるな。foreachにif分のほうが全然速い。
930デフォルトの名無しさん
2016/10/24(月) 23:06:14.75ID:bra729J0 かわりにすげー早く書けるからいいじゃん
931デフォルトの名無しさん
2016/10/27(木) 00:34:11.36ID:VLwewB4m 実行速度よりも実装速度のほうが多くの場合大事だもんね
富豪的プログラミングしよう
速度向上は執事に任せればよい
富豪的プログラミングしよう
速度向上は執事に任せればよい
932デフォルトの名無しさん
2016/10/27(木) 00:52:45.70ID:o19fKtn+ 実行速度とか実装工数なんかどうでもいい
単純に保守の楽な方がいい
単純に保守の楽な方がいい
933デフォルトの名無しさん
2016/10/29(土) 06:52:22.29ID:OuiJcyYe それが普及失敗の原因か・・・
934デフォルトの名無しさん
2016/10/29(土) 10:20:51.57ID:dpmyBZLi linqは保守もしやすい
ループ構造は間違えやすいしなにをやってるかわかりにくい
Linqなら上から順に読んだ通りに動くから理解が簡単
ループ構造は間違えやすいしなにをやってるかわかりにくい
Linqなら上から順に読んだ通りに動くから理解が簡単
935デフォルトの名無しさん
2016/11/01(火) 04:46:14.83ID:rs3aEitj 保守ができないから採用されないわけで
936デフォルトの名無しさん
2016/11/02(水) 02:24:52.83ID:mhG4I3n/ 普及に失敗したんじゃなくてお前みたいな頭の固い奴に理解できないだけの話(キリ
937デフォルトの名無しさん
2016/11/02(水) 05:47:13.45ID:TUD+TNMg 実際の話、C#使っててSystem.LinqとかSystem.Xml.Linq名前空間が使われてない開発現場なんてあるの?
938デフォルトの名無しさん
2016/11/02(水) 08:48:47.99ID:t5KdzDu6 日本は2.0以前に書かれたクソシステムが現役で稼働してるIT後進国だしそりゃあるだろ
939デフォルトの名無しさん
2016/11/03(木) 02:34:33.00ID:iotxcKjl 糞遅くて禁止された。2.0コード速すぎ。
940デフォルトの名無しさん
2016/11/04(金) 06:07:35.20ID:ELmvCmHq LINQ使いは自称レベルが高い。
941デフォルトの名無しさん
2016/11/05(土) 12:27:36.93ID:z/qQe3IW 別にレベル高くねーよ
文法が新しくて理解できない老害がブーブー行ってるだけだ
LINQのメソッドについて個々に勉強すればすぐに理解できるのに
それを怠って文句言ってるだけ
文法が新しくて理解できない老害がブーブー行ってるだけだ
LINQのメソッドについて個々に勉強すればすぐに理解できるのに
それを怠って文句言ってるだけ
942デフォルトの名無しさん
2016/11/05(土) 12:43:33.36ID:PXYcOtjJ Linq否定派なんて存在しなく否定派を語る連中はただスレに活気を呼び込みたいだけの愉快犯ということはわかってる
943デフォルトの名無しさん
2016/11/08(火) 07:12:19.04ID:vur9C45Y List<string> strList
があって、それを10個ごとの部分に分けて
List<List<string>> にするLINQを教えてくれ。
があって、それを10個ごとの部分に分けて
List<List<string>> にするLINQを教えてくれ。
944デフォルトの名無しさん
2016/11/08(火) 20:19:21.57ID:t3tssHtU s.Buffer(10).Select(x => x.ToList()).ToList()
945デフォルトの名無しさん
2016/11/09(水) 03:54:58.44ID:A4E1noEd サンキュウ。
でも
List<string>にBuffer(10)は使えなかった。
でも
List<string>にBuffer(10)は使えなかった。
946デフォルトの名無しさん
2016/11/13(日) 10:01:09.04ID:sNDrzqcx LINQでZIPファイルのサーチをするにはどうしたらいいんだ? ファイル名だけ
でいいんだけど。
でいいんだけど。
947デフォルトの名無しさん
2016/11/13(日) 11:53:01.79ID:y11O8OBy ファイルの配列をListにしてWhereとか?
でもLinq使う必要ない気がするが?
でもLinq使う必要ない気がするが?
948デフォルトの名無しさん
2016/11/13(日) 12:17:11.01ID:sNDrzqcx あっすまん。でけた。Compressionでできるよ。
意味あるとおもうよ。大量にめもりーがいるのに配列にいれると意味ないでしょ。
せっかくLINQつかうんだから。
意味あるとおもうよ。大量にめもりーがいるのに配列にいれると意味ないでしょ。
せっかくLINQつかうんだから。
949デフォルトの名無しさん
2016/11/13(日) 12:43:52.51ID:sNDrzqcx >66
>LINQとSQLの違いのひとつにプランナの有無がある。
>LINQは処理順に書かなくてはならないし、必ず記述順で処理される。
>LINQはSQLの類似品と考えるより、
>Enumeratorやコールバック(ラムダ)を使ったパイプライン処理であり
>コレクション処理の延長だと思ったほうが誤解がない。
俺もこの理解なのだが、
LINQでDBをアクセスした場合どうなるの? パーフォーマンスは無茶苦茶落ちるって
こと? シーケンシャルに処理してるだけだものな。
>LINQとSQLの違いのひとつにプランナの有無がある。
>LINQは処理順に書かなくてはならないし、必ず記述順で処理される。
>LINQはSQLの類似品と考えるより、
>Enumeratorやコールバック(ラムダ)を使ったパイプライン処理であり
>コレクション処理の延長だと思ったほうが誤解がない。
俺もこの理解なのだが、
LINQでDBをアクセスした場合どうなるの? パーフォーマンスは無茶苦茶落ちるって
こと? シーケンシャルに処理してるだけだものな。
950デフォルトの名無しさん
2016/11/13(日) 12:54:46.07ID:fBLfWj6L >>949
EFは内部的に動的クエリを生成してDBにアクセスするからそんな負荷はかからない
EFは内部的に動的クエリを生成してDBにアクセスするからそんな負荷はかからない
951デフォルトの名無しさん
2016/11/13(日) 13:17:46.59ID:sNDrzqcx そりゃまそうだろうね。でも動的に生成したんでは予想外のことが起こりそう。
パーフォーマンスを致命的に落とす書き方ってあるんじゃなかろうか?
パーフォーマンスを致命的に落とす書き方ってあるんじゃなかろうか?
952デフォルトの名無しさん
2016/11/13(日) 13:24:00.80ID:fBLfWj6L あるよ
そこは生産性とのトレードオフ
そこは生産性とのトレードオフ
953デフォルトの名無しさん
2016/11/13(日) 15:26:48.72ID:PMfnb6vA >>949
プランナの有無とか、あくまでも今のLINQの実装なら、て前提があると思うが
基本的にはLINQは遅延実行なので、プランナ入れて最適化する余地はあると思うぞ
DBアクセスに限るなら、LINQがやるのは最終的なSQLを作るだけとも言えるので
後はそのDBのオプティマイザ次第、ってのが理想じゃないかとは思うが
まあSQLの書き方でパフォーマンス差が出るのは事実だし
LINQで最適化されてないSQLが出力されるのもある程度しょうがない
プランナの有無とか、あくまでも今のLINQの実装なら、て前提があると思うが
基本的にはLINQは遅延実行なので、プランナ入れて最適化する余地はあると思うぞ
DBアクセスに限るなら、LINQがやるのは最終的なSQLを作るだけとも言えるので
後はそのDBのオプティマイザ次第、ってのが理想じゃないかとは思うが
まあSQLの書き方でパフォーマンス差が出るのは事実だし
LINQで最適化されてないSQLが出力されるのもある程度しょうがない
954デフォルトの名無しさん
2016/11/14(月) 07:06:28.58ID:OCTkBwGI LINQはコレクションを順番に処理するだけのことだからXMLのような文書を検索なんて
実質できないでしょ。誇大広告じゃないかな。
コレクションにすればLINQがつかえるけど、IEnumerableにできなければ使えない。
そこがむつかしいのでは?
実質できないでしょ。誇大広告じゃないかな。
コレクションにすればLINQがつかえるけど、IEnumerableにできなければ使えない。
そこがむつかしいのでは?
955デフォルトの名無しさん
2016/11/14(月) 12:45:24.50ID:OCTkBwGI つーかやってみると奥が深いな。あんまり深入りしないほうがいいな。
select,whereを適当につかうくらいにしておいたほうがいいとおもった
select,whereを適当につかうくらいにしておいたほうがいいとおもった
956デフォルトの名無しさん
2016/11/14(月) 14:29:26.19ID:OCTkBwGI var query = from f in FileList
let matches = rx.Matches(f.DirectoryName )
where (matches.Count > 0)
orderby f.CreationTime descending
group f by f.DirectoryName;
これをdesendigとaescendigを切り替えようとおもうと、まるまる2回書かないと
いけないな。
なんかいい方法ないのか?
モードでクエリを切り替えるのって大変だな。
let matches = rx.Matches(f.DirectoryName )
where (matches.Count > 0)
orderby f.CreationTime descending
group f by f.DirectoryName;
これをdesendigとaescendigを切り替えようとおもうと、まるまる2回書かないと
いけないな。
なんかいい方法ないのか?
モードでクエリを切り替えるのって大変だな。
957デフォルトの名無しさん
2016/11/14(月) 20:35:23.23ID:ODUYDX4V >>954
Linqで全てのクエリを賄うのは厳しいよ
パフォーマンスもそうだけど検索対象に特化したDSLの方がやっぱり機能面でも強力だ
ただしそういう場合でも結果をIEnumerableに帰着させるだけでLinqの恩恵を得られるってのは大きいね
そうすれば省メモリかつ高速かつ柔軟に検索した上で後は同じインターフェースを通じて結果をお手軽に処理といった事ができる
Linqで全てのクエリを賄うのは厳しいよ
パフォーマンスもそうだけど検索対象に特化したDSLの方がやっぱり機能面でも強力だ
ただしそういう場合でも結果をIEnumerableに帰着させるだけでLinqの恩恵を得られるってのは大きいね
そうすれば省メモリかつ高速かつ柔軟に検索した上で後は同じインターフェースを通じて結果をお手軽に処理といった事ができる
958デフォルトの名無しさん
2016/11/16(水) 03:40:03.88ID:wnKhXXqD せっかくLINQ覚えてもJAVAではつかえないのか? 残念。
959デフォルトの名無しさん
2016/11/16(水) 06:12:37.05ID:sZ2S0G8X Java8の関数型、Stream がLINQと同じ
960デフォルトの名無しさん
2016/11/16(水) 12:14:52.63ID:wnKhXXqD Javaにもあったのか? 本が古すぎた。
ところでクエリー式とメソッド式はどっちが有利なのだ? どっちかにして
ほしいよ。それでなくても覚えることが多いのだから、、
ところでクエリー式とメソッド式はどっちが有利なのだ? どっちかにして
ほしいよ。それでなくても覚えることが多いのだから、、
961デフォルトの名無しさん
2016/11/16(水) 20:05:50.19ID:gtmrvLDz 散々既出だけどメソッド形式だけでいいよ
クエリ形式はレガシーコードの保守で修正しなきゃならない場合にだけ考えればいい
クエリ形式はレガシーコードの保守で修正しなきゃならない場合にだけ考えればいい
962デフォルトの名無しさん
2016/11/17(木) 03:40:19.26ID:B+vLCAoF 既出でしたか? 最近LINQを知ったばかりなので、知りませんでした。
963デフォルトの名無しさん
2016/11/17(木) 21:48:26.39ID:1A2/m07v ギャグは顔だけにしてくれ。
964デフォルトの名無しさん
2016/12/09(金) 06:57:30.84ID:9zXSWeUB var q = from cn in (from n in a select conversion(n))
from m in b select cn + m;
var q = a.Select((n) => new { n, cn = conversion(n) })
.SelectMany((c)=>b, (d,m)=>d.cn + m);
等価らしいが意味が分からない。dはどこからでてきたのだろうか?
from m in b select cn + m;
var q = a.Select((n) => new { n, cn = conversion(n) })
.SelectMany((c)=>b, (d,m)=>d.cn + m);
等価らしいが意味が分からない。dはどこからでてきたのだろうか?
965デフォルトの名無しさん
2016/12/09(金) 14:49:56.91ID:NMzYP4JF >>964
http://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_08/csharp30_08_04.html
くこか
letの代わりにInt32を取るSelectManyだろ
呼び出されるたびに+1されていく
cとdがそれぞれnとcnに対応する
mがInt32
http://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_08/csharp30_08_04.html
くこか
letの代わりにInt32を取るSelectManyだろ
呼び出されるたびに+1されていく
cとdがそれぞれnとcnに対応する
mがInt32
966デフォルトの名無しさん
2016/12/11(日) 11:53:49.51ID:vFkR62Wj いやいや違うだろ
http://devlights.hatenablog.com/entry/20100715/p1
この例のようにSelectManyの、ここでは2番目のオーバーロードを使っている
つまり
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
Console.WriteLine(conversion(a[i]) + b[j]);
Console.WriteLine($"conversion called: {count}");
と同じことをSelectManyを使って一本化してるだけ
1番目のオーバーロードが同じclassのメンバなのでcollectionselectorを使ってないが
ここではa[]とb[]という別々の配列に対して計算結果の二重ループを平坦化したいので
collectionselectorが必要になりこのような書き方になっている
http://devlights.hatenablog.com/entry/20100715/p1
この例のようにSelectManyの、ここでは2番目のオーバーロードを使っている
つまり
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
Console.WriteLine(conversion(a[i]) + b[j]);
Console.WriteLine($"conversion called: {count}");
と同じことをSelectManyを使って一本化してるだけ
1番目のオーバーロードが同じclassのメンバなのでcollectionselectorを使ってないが
ここではa[]とb[]という別々の配列に対して計算結果の二重ループを平坦化したいので
collectionselectorが必要になりこのような書き方になっている
967デフォルトの名無しさん
2017/05/25(木) 00:30:45.34ID:hLFywp3s 今更ながらlinqは美しいな。
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 伊東市長選、田久保氏の落選確実 元市議の杉本氏と元市長の小野氏が激しく競り合う [蚤の市★]
- こども家庭庁、2026年から“独身税”を開始、年収200万なら年4200円、年収400万なら年7800円 ★5 [お断り★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★2 [少考さん★]
- B’z東京ドーム公演で後ろの客が大熱唱…「B’zの歌声に集中できない」注意すると笑いながら反論されモヤモヤ [muffin★]
- 中国軍機のレーダー照射1週間 駆け引き続く 中国、米のレッドライン模索 日本、米以外の同志国とも連携探る 米は対立から距離置く [ぐれ★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★4 [Hitzeschleier★]
- 【実況】博衣こよりのえちえちボンバーマン大会🧪★3
- 【速報】伊東市長選、田久保氏が敗北確実wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [812874503]
- なんGで毎日のように立ってる→🏡これなんなん❓
- このお靴欲しい
- 人気漫画家、絶望「どれだけガンダムが反戦を訴えてもゴジラやジブリがメッセージ出しても届かない、もうどうしたらいいの…?」 [339712612]
- モモ・​デビルーク(ToLOVEる)がバニーガール姿でプライズ・フィギュア化キタ━━━━(゚∀゚)━━━━!! [387442934]
