VisualStudio2008より追加された便利で強力な機能
統合言語クエリ (LINQ : Language Integrated Query)
ちょっと使ってみると、意外と難しいし、テクニック的にも奥が深いものです。
関数型言語にしかないような機能ラムダ式(Lambda式)などはオブジェクト指向とは一味違う機能です。
DataBaseの操作にも、Xmlの操作にも、さらにもっと単純な配列なコンテナにさえ機能する
言語共通・高汎用な統合言語クエリを皆で一緒にマターリ勉強しましょう。
質問、便利なマイテクニックの発表、いろいろやっちゃってください。
【VB.NET】LINQ友の会【C#, C♯, C#】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2008/02/09(土) 23:51:34269デフォルトの名無しさん
2008/10/31(金) 19:53:08 >>267
ラムダで書くと見た目が不必要に複雑になるからな
ラムダで書くと見た目が不必要に複雑になるからな
270デフォルトの名無しさん
2008/10/31(金) 19:59:39 C#の方は XML to LINQ を無理やりC#構文で書かせるのはなんとかしてほしい。
データ操作まで無理やりオブジェクト指向にするとかえって記述がグダグダになるんだよ。
データ操作は特化した記述がいい。
データ操作まで無理やりオブジェクト指向にするとかえって記述がグダグダになるんだよ。
データ操作は特化した記述がいい。
271デフォルトの名無しさん
2008/10/31(金) 20:27:08 同じ記述でXMLが扱える所が利点なのに?
わざわざ特化した記述作って、新しく覚えないといけなかったら魅力感じないな
わざわざ特化した記述作って、新しく覚えないといけなかったら魅力感じないな
272デフォルトの名無しさん
2008/10/31(金) 20:35:02 もしかして関数型構築のこと?
273デフォルトの名無しさん
2008/10/31(金) 22:23:22 >>269
全部クエリ式で書けない場合は,joinとかletとか使わない限りは全部拡張メソッドで俺は書いちゃうな
全部クエリ式で書けない場合は,joinとかletとか使わない限りは全部拡張メソッドで俺は書いちゃうな
274デフォルトの名無しさん
2008/11/01(土) 02:17:30 クエリ式みたいなものを自由に拡張できるようにして欲しいお(´・ω・`)
275デフォルトの名無しさん
2008/11/01(土) 02:29:34 そんなことしたらカオスになるじゃないか
276デフォルトの名無しさん
2008/11/01(土) 09:41:51 クエリ式は抽象化の度合いを下げないまま、
foreachをネストさせた時の様に変数を扱えるのが便利だね。
これを拡張可能にすると・・・関数型っぽくなる気がする。
foreachをネストさせた時の様に変数を扱えるのが便利だね。
これを拡張可能にすると・・・関数型っぽくなる気がする。
277デフォルトの名無しさん
2008/11/01(土) 09:50:56278デフォルトの名無しさん
2008/11/01(土) 10:45:55279デフォルトの名無しさん
2008/11/01(土) 11:38:48 遅延評価を繋げるだけならほとんど遅くはならないはず
280デフォルトの名無しさん
2008/11/01(土) 11:49:52 遅い速いは相対的なものだからどのレベルで遅いといってるのか示さないと議論にならない。
非常に細かいパフォーマンスを気にしているなら、
ラムダ式(デリゲート)を使うので関数の呼び出しがインライン化されないとか、
SumやMaxなど集計系メソッドを複数使った場合にちょっと効率の悪いことをしているとか
そんなところだね。
非常に細かいパフォーマンスを気にしているなら、
ラムダ式(デリゲート)を使うので関数の呼び出しがインライン化されないとか、
SumやMaxなど集計系メソッドを複数使った場合にちょっと効率の悪いことをしているとか
そんなところだね。
281デフォルトの名無しさん
2008/11/01(土) 12:18:38 Reverseってバッファ使うから即時実行だと思ってたんだけど、Reverseの呼び出し時じゃなくて
最初のMoveNextの呼び出しの時点ですべての結果が決まるから遅延実行になるのか
速い遅い気にするならどういう実装になってるか気にしないといけないね
最初のMoveNextの呼び出しの時点ですべての結果が決まるから遅延実行になるのか
速い遅い気にするならどういう実装になってるか気にしないといけないね
282デフォルトの名無しさん
2008/11/01(土) 12:31:55 3.0出始めの時に誰かが、foreachで条件とか変換とか並べて書いたのと、クエリ式とか並べて頴田の比べて結構違いがあったような。
283デフォルトの名無しさん
2008/11/01(土) 12:37:47 Linq to ObjectとLinq to SQLは分けないと話が食い違うから要注意。
284デフォルトの名無しさん
2008/11/01(土) 12:44:36 この文脈でどう読んだらto SQLになるのか
285デフォルトの名無しさん
2008/11/01(土) 12:50:21 4.0の紹介ビデオみてるが、よいなぁこれ・・・
来年早々にも出してくれんかな・・・
来年早々にも出してくれんかな・・・
286デフォルトの名無しさん
2008/11/01(土) 13:11:04 PLINQとか並列化関係いいなぁ・・
287デフォルトの名無しさん
2008/11/05(水) 00:04:48 4.0の紹介ビデオってmsdnにある?
288デフォルトの名無しさん
2008/11/05(水) 00:12:26 http://channel9.msdn.com/pdc2008/TL16/
ちなみに、パスを1段削って、
http://channel9.msdn.com/pdc2008/
にするとPDCのセッションの一覧が出てくる。
ちなみに、パスを1段削って、
http://channel9.msdn.com/pdc2008/
にするとPDCのセッションの一覧が出てくる。
289デフォルトの名無しさん
2008/11/05(水) 00:31:16 thx
290デフォルトの名無しさん
2008/11/06(木) 01:31:48 C#インタプリタ、すげぇ!
291デフォルトの名無しさん
2008/11/06(木) 09:38:50 >>282
http://ufcpp.net/study/csharp/sp3_linqreconstruct.html#iterator
これ?
foreach で置き換えるだけじゃたいして性能変わらない。
ここで違いが出てるのはそれの次の節の話で、
「if をループの外に出せ」と同じ原理で
「可能な限り where を from の上に」ってやるとパフォーマンス結構変わる。
http://ufcpp.net/study/csharp/sp3_linqreconstruct.html#iterator
これ?
foreach で置き換えるだけじゃたいして性能変わらない。
ここで違いが出てるのはそれの次の節の話で、
「if をループの外に出せ」と同じ原理で
「可能な限り where を from の上に」ってやるとパフォーマンス結構変わる。
292デフォルトの名無しさん
2008/11/06(木) 10:16:15 LINQのクエリ式とSQLの一番の違いがプランナの有無。
クエリ式は書いた順番どおりに処理していくが、
SQLはプランナが最適な実行計画を立てる。
クエリ式は書いた順番どおりに処理していくが、
SQLはプランナが最適な実行計画を立てる。
293デフォルトの名無しさん
2008/11/06(木) 10:39:15 LinqtoObjectも気合い入れてプロバイダ書けばプランナ相当のもの記述可能?
いや書く気毛頭無いですが
いや書く気毛頭無いですが
294デフォルトの名無しさん
2008/11/08(土) 12:26:24 やろうとおもえばLINQでスクリプト言語書けるよ
295デフォルトの名無しさん
2008/11/09(日) 21:52:31 >> 294
出だしだけでもKWSK
出だしだけでもKWSK
296デフォルトの名無しさん
2008/11/11(火) 17:07:42 LINQ to SQLって無くなるの?
なんつーか、ぶちまければ良いってもんじゃねぇだろ。
そんなのはオプソ系に任せとけよ。
なんつーか、ぶちまければ良いってもんじゃねぇだろ。
そんなのはオプソ系に任せとけよ。
297デフォルトの名無しさん
2008/11/11(火) 18:08:39 何で無くなると思ったのさ?
298デフォルトの名無しさん
2008/11/11(火) 18:35:18 なくなるっつーかLinq to Entityに置き換えでしょ。
別に今のところは対して書き方が違うわけじゃないし
Linq to Entity完成までの代打的存在として十分用を果たしたような。
別に今のところは対して書き方が違うわけじゃないし
Linq to Entity完成までの代打的存在として十分用を果たしたような。
299デフォルトの名無しさん
2008/11/11(火) 22:44:48 うむ。かなりの部分でSQLの開発楽にしてくれた。
ストーリーにちゃんと沿わないと痛い目あうがなwww
ストーリーにちゃんと沿わないと痛い目あうがなwww
300デフォルトの名無しさん
2008/11/11(火) 23:18:07 >>296
開発が止まるだけで今後も当面は.NET Frameworkに標準搭載が続くんじゃないの?
開発が止まるだけで今後も当面は.NET Frameworkに標準搭載が続くんじゃないの?
301デフォルトの名無しさん
2008/11/12(水) 00:12:05 Entity Frameworkは絶対こける。
間違いない。
間違いない。
302デフォルトの名無しさん
2008/11/12(水) 00:44:11 >>301
まあVer.3ぐらいになるまでは毎回大変更の嵐だろうな。
まあVer.3ぐらいになるまでは毎回大変更の嵐だろうな。
303デフォルトの名無しさん
2008/11/12(水) 17:23:24 Entity FrameworkはLinq to SQLの問題点が色々と解決されてるんだけど
デザイナが使いにくすぎる。
RailsのActiveRecordみたいに
ちょこちょこっとクラスに属性を付ければモデル完成、
ってのフレームワークだったらよかったのに。
デザイナが使いにくすぎる。
RailsのActiveRecordみたいに
ちょこちょこっとクラスに属性を付ければモデル完成、
ってのフレームワークだったらよかったのに。
304デフォルトの名無しさん
2008/11/20(木) 12:30:10 LINQ to SQLってADO.NETより目茶苦茶いいな。
更新系では、生のSQL文に完全なWHERE句を入れてくれるし、
非接続型・楽観的制御(←赤間さん流)では文句なし。
あと、生SQLのサブクエリ相当の組み合わせを段階を踏んで書けるのもいい。
デバッグも迅速になりそう。
更新系では、生のSQL文に完全なWHERE句を入れてくれるし、
非接続型・楽観的制御(←赤間さん流)では文句なし。
あと、生SQLのサブクエリ相当の組み合わせを段階を踏んで書けるのもいい。
デバッグも迅速になりそう。
305デフォルトの名無しさん
2008/11/20(木) 15:06:45 俺、LINQ to P2P で当てたら結婚すんだ。
306デフォルトの名無しさん
2008/11/20(木) 21:51:19 >>304
消える運命にあるが
消える運命にあるが
307デフォルトの名無しさん
2008/11/20(木) 22:15:10 なんらかの形で残るよ。使ってみれば、この方向性で進化していくんだろうと判る。
今のはちょっとSQL Serverに特化しすぎてるからディスコンかもしれないけどさ。
今のはちょっとSQL Serverに特化しすぎてるからディスコンかもしれないけどさ。
308デフォルトの名無しさん
2008/11/20(木) 22:16:56 >>307
この方向性で進化した結果がLinq to Entityなんだけど、今のところいまいちの出来。
この方向性で進化した結果がLinq to Entityなんだけど、今のところいまいちの出来。
309デフォルトの名無しさん
2008/11/20(木) 22:32:43 >>308
Entity Framework自体まだ手を付けてないのだが、どういまいち?
Entity Framework自体まだ手を付けてないのだが、どういまいち?
310デフォルトの名無しさん
2009/01/04(日) 23:25:17 例えば、
Select Sum(col1),Sum(col2),Sum(col3) from Table1
なSQLだとLINQではどう書くの?
Select Sum(col1),Sum(col2),Sum(col3) from Table1
なSQLだとLINQではどう書くの?
311デフォルトの名無しさん
2009/01/04(日) 23:46:52 >>310
そんな質問はつい最近掲示板で見た事あるな
そんな質問はつい最近掲示板で見た事あるな
312デフォルトの名無しさん
2009/01/04(日) 23:59:48 これか。ググったら一発で出てきたw
ttp://bbs.wankuma.com/index.cgi?mode=all&namber=30713
ttp://bbs.wankuma.com/index.cgi?mode=all&namber=30713
313デフォルトの名無しさん
2009/01/05(月) 00:53:25 ただのマルチじゃねーかw
315デフォルトの名無しさん
2009/01/07(水) 03:06:42 var result =
from item in Table1
select new {Sum1 = item.col1.Sum(), Sum2 = item.col2.Sum(), Sum3 = item.col3.Sum(), }
でいいんじゃね?
from item in Table1
select new {Sum1 = item.col1.Sum(), Sum2 = item.col2.Sum(), Sum3 = item.col3.Sum(), }
でいいんじゃね?
316デフォルトの名無しさん
2009/01/07(水) 04:16:09 いや、良くない。範囲変数itemは単なる1レコードで、item.col?はスカラー
1回のループで計算したいなら、アキュムレータ使うしかないはず
var sum = Table1.Aggregate(new[] { 0, 0, 0 }, (y, x) => {
y[0] += x.col1;
y[1] += x.col2;
y[2] += x.col3;
return y;
});
1回のループで計算したいなら、アキュムレータ使うしかないはず
var sum = Table1.Aggregate(new[] { 0, 0, 0 }, (y, x) => {
y[0] += x.col1;
y[1] += x.col2;
y[2] += x.col3;
return y;
});
317デフォルトの名無しさん
2009/01/07(水) 05:35:25 >>316
それはクエリプロバイダ次第じゃなかろうか。
確かにLINQ to Objectのみなら>>316の書き方の方が速い。
しかしTable1.Aggregateのオーバーロード解決次第によっては
クエリプロバイダの提供する最適なクエリ演算子ではなく
LINQ to Objectの低速なパスで実行されるため>>316はかえって遅くなる。
式木的に
Select Sum(col1),Sum(col2),Sum(col3) from Table1
というSQLに対応するのが何かと聞かれれば>>315を推したい。
あとは>>310が何を期待して聞いたか次第かな。
LINQ to SQLでの書き方を期待していたなら>>315でも最適化されたと思うが。
それはクエリプロバイダ次第じゃなかろうか。
確かにLINQ to Objectのみなら>>316の書き方の方が速い。
しかしTable1.Aggregateのオーバーロード解決次第によっては
クエリプロバイダの提供する最適なクエリ演算子ではなく
LINQ to Objectの低速なパスで実行されるため>>316はかえって遅くなる。
式木的に
Select Sum(col1),Sum(col2),Sum(col3) from Table1
というSQLに対応するのが何かと聞かれれば>>315を推したい。
あとは>>310が何を期待して聞いたか次第かな。
LINQ to SQLでの書き方を期待していたなら>>315でも最適化されたと思うが。
318デフォルトの名無しさん
2009/01/07(水) 08:09:53 LINQ to SQL、生成されたSQLクエリがどんなのか見れるから試してみればいいんでは。
319デフォルトの名無しさん
2009/01/07(水) 08:21:29 いつもながらLinq to ほにゃららを明記しないと話がこじれるな。
Linq to Entityかもしれない。
Linq to Entityかもしれない。
320デフォルトの名無しさん
2009/01/07(水) 10:45:44 マルチに答えるとつけあがるからやめとけ
321デフォルトの名無しさん
2009/01/07(水) 12:34:27322デフォルトの名無しさん
2009/01/07(水) 14:07:35 >>321
確かに間違ってるな。
1クエリで書こうと思うとティマイザに期待しつつこう書くしかないか。
var result =
from _ in Table1
new
{
sum1 = Table1.Sum(item => item.col1),
sum2 = Table1.Sum(item => item.col2),
sum3 = Table1.Sum(item => item.col3)
}).Take(1).First();
確かに間違ってるな。
1クエリで書こうと思うとティマイザに期待しつつこう書くしかないか。
var result =
from _ in Table1
new
{
sum1 = Table1.Sum(item => item.col1),
sum2 = Table1.Sum(item => item.col2),
sum3 = Table1.Sum(item => item.col3)
}).Take(1).First();
323デフォルトの名無しさん
2009/01/07(水) 14:08:38 ティマイザ→オプティマイザ
324デフォルトの名無しさん
2009/01/31(土) 19:41:18 >>310
初心者なりに考えてみた。
全然スマートじゃないけど勘弁してね。
var result = table.Select((t, x) => new
{
seq = x + 1,
col1 = t.col1,
col2 = t.col2
}).GroupBy(t2 => t2.seq).Select(g=>new
{
sum1 = g.Sum(t2=>t2.col1),
sum2=g.Sum(t2=>t2.col2)
});
初心者なりに考えてみた。
全然スマートじゃないけど勘弁してね。
var result = table.Select((t, x) => new
{
seq = x + 1,
col1 = t.col1,
col2 = t.col2
}).GroupBy(t2 => t2.seq).Select(g=>new
{
sum1 = g.Sum(t2=>t2.col1),
sum2=g.Sum(t2=>t2.col2)
});
325デフォルトの名無しさん
2009/02/11(水) 13:05:19var result = table.Select(t => new
{
col1 = t.col1,
col2 = t.col2
}).GroupBy(t2 => 1).Select(g => new
{
sum1 = g.Sum(t2 => t2.col1),
sum2 = g.Sum(t2 => t2.col2)
});
326デフォルトの名無しさん
2009/02/17(火) 18:54:14 初めまして、よろしくお願いいたします。
どうかアドバイスを下さい。
Visual Studio 2008を使っていて、1台の自宅PCにインストールしています。
インストールしているのは、SQLServer2005 developper edtion + VB 2008です。
この環境でC/Sアプリを作り始めました。
経緯としましては、VBアプリを作るのにVSを起動して、プロジェクトの種類でVB、テンプレートで
Windowsフォームアプリケーション、をクリックして進み、プロジェクト名をjob_testにしてOKをクリックしました。
VSが起動し、左にサーバーペイン、右にデータソースペインが表示されました。
ここからが問題なのですが、データソースペインがうまく機能しないのです。
1. 「ペインの「新しいデータソースの追加」をクリック
米データソース構成ウィザードが軌道します。
2.「データソースの種類」で「データベース」を選択して「次へ」をクリックして進みます。
3.「データ接続の選択」で「・・・使用するデータ接続」で既存の接続を選択して、
ラジオボタン「はい、重要情報を接続文字列に含みます。」を選択してクリックして進みます。
4.「接続文字列をアプリケーション構成ファイルに保存しますか?」で「次へ」をクリックして進みます。
5.ここ(データベースオブジェクトの選択)でエラーが発生します。メッセージは、「データベースから
情報を取り出すときに、エラーが発生しました。MicrosohutoVisualStudio.datadesignsync.
designersync.Facedsync,TableConfigManager のタイプ初期化
子が例外をスローしました」と表示され先へ進めません。
どうか解決方法を教えて下さい。
それと境い目の現象なのでDBのスレにもレスさせて頂きます。ご了承くださいませ。
どうかアドバイスを下さい。
Visual Studio 2008を使っていて、1台の自宅PCにインストールしています。
インストールしているのは、SQLServer2005 developper edtion + VB 2008です。
この環境でC/Sアプリを作り始めました。
経緯としましては、VBアプリを作るのにVSを起動して、プロジェクトの種類でVB、テンプレートで
Windowsフォームアプリケーション、をクリックして進み、プロジェクト名をjob_testにしてOKをクリックしました。
VSが起動し、左にサーバーペイン、右にデータソースペインが表示されました。
ここからが問題なのですが、データソースペインがうまく機能しないのです。
1. 「ペインの「新しいデータソースの追加」をクリック
米データソース構成ウィザードが軌道します。
2.「データソースの種類」で「データベース」を選択して「次へ」をクリックして進みます。
3.「データ接続の選択」で「・・・使用するデータ接続」で既存の接続を選択して、
ラジオボタン「はい、重要情報を接続文字列に含みます。」を選択してクリックして進みます。
4.「接続文字列をアプリケーション構成ファイルに保存しますか?」で「次へ」をクリックして進みます。
5.ここ(データベースオブジェクトの選択)でエラーが発生します。メッセージは、「データベースから
情報を取り出すときに、エラーが発生しました。MicrosohutoVisualStudio.datadesignsync.
designersync.Facedsync,TableConfigManager のタイプ初期化
子が例外をスローしました」と表示され先へ進めません。
どうか解決方法を教えて下さい。
それと境い目の現象なのでDBのスレにもレスさせて頂きます。ご了承くださいませ。
327デフォルトの名無しさん
2009/02/20(金) 07:06:29 >>326
マルチ乙
マルチ乙
328デフォルトの名無しさん
2009/02/20(金) 18:50:07 Microsohuto社製品なんて使うからだな
329デフォルトの名無しさん
2009/02/21(土) 04:59:59 >Microsohuto社
中国のばったものの会社?
中国のばったものの会社?
330デフォルトの名無しさん
2009/02/21(土) 21:28:41 株式会社精密工具
331デフォルトの名無しさん
2009/02/23(月) 00:42:52 Linq to Xmlでちょっと質問
<root>
<data>
<ID>1</ID>
</data>
<data>
<ID>3</ID>
</data>
<data>
<ID>4</ID>
</data>
</root>
というのを
<root>
<data>
<ID>1</ID>
</data>
<data>
<ID>2</ID>
</data>
<data>
<ID>3</ID>
</data>
</root>
に変換するにはどうすれば良いんでしょうか?
イメージとしては、IDを指定して<data>ごと削除、でもIDの値は1から順番になるように保つ、という感じです
<root>
<data>
<ID>1</ID>
</data>
<data>
<ID>3</ID>
</data>
<data>
<ID>4</ID>
</data>
</root>
というのを
<root>
<data>
<ID>1</ID>
</data>
<data>
<ID>2</ID>
</data>
<data>
<ID>3</ID>
</data>
</root>
に変換するにはどうすれば良いんでしょうか?
イメージとしては、IDを指定して<data>ごと削除、でもIDの値は1から順番になるように保つ、という感じです
332デフォルトの名無しさん
2009/02/23(月) 00:53:41 データが何個あるか調べて、XMLを作り直したほうが早いと思わんかね?
333デフォルトの名無しさん
2009/02/23(月) 02:38:35 いまひとつイメージがつかめないから、こうゆう解釈で行くよ〜
<data><ID>1</ID><ext at=""true"">hoge1</ext></data>
<data><ID>2</ID><ext at=""false"">hoge2</ext></data>
<data><ID>3</ID><ext at=""true"">hoge3</ext></data>
<data><ID>4</ID><ext at=""false"">hoge4</ext></data>
ID=3の行を削除でIDが繰り上がる
<data><ID>1</ID><ext at=""true"">hoge1</ext></data>
<data><ID>2</ID><ext at=""false"">hoge2</ext></data>
<data><ID>3</ID><ext at=""false"">hoge4</ext></data>
<data><ID>1</ID><ext at=""true"">hoge1</ext></data>
<data><ID>2</ID><ext at=""false"">hoge2</ext></data>
<data><ID>3</ID><ext at=""true"">hoge3</ext></data>
<data><ID>4</ID><ext at=""false"">hoge4</ext></data>
ID=3の行を削除でIDが繰り上がる
<data><ID>1</ID><ext at=""true"">hoge1</ext></data>
<data><ID>2</ID><ext at=""false"">hoge2</ext></data>
<data><ID>3</ID><ext at=""false"">hoge4</ext></data>
334デフォルトの名無しさん
2009/02/23(月) 02:42:54 string xml = @"<root>
<data><ID>1</ID><ext at=""true"">hoge1</ext></data>
<data><ID>2</ID><ext at=""false"">hoge2</ext></data>
<data><ID>3</ID><ext at=""true"">hoge3</ext></data>
<data><ID>4</ID><ext at=""false"">hoge4</ext></data></root>";
var doc = XDocument.Parse(xml);
var rs = doc.Elements("root").Elements("data").Where(x => x.Element("ID").Value != "3")
.Select((x, cnt) => {
var nx = new XElement(x);
nx.Element("ID").Value = (cnt+1).ToString();
return nx;} );
var el2 = new XElement("root2");
foreach (var s in rs) el2.Add(s);
var doc2 = new XDocument(el2);
Console.WriteLine(doc2);
今回は読み込んだXdocumentをいじらないようにしたが、いじっていいなら
Linqは使わず最初に読み込んだXDocumentを直接変更してもいいと思う。
<data><ID>1</ID><ext at=""true"">hoge1</ext></data>
<data><ID>2</ID><ext at=""false"">hoge2</ext></data>
<data><ID>3</ID><ext at=""true"">hoge3</ext></data>
<data><ID>4</ID><ext at=""false"">hoge4</ext></data></root>";
var doc = XDocument.Parse(xml);
var rs = doc.Elements("root").Elements("data").Where(x => x.Element("ID").Value != "3")
.Select((x, cnt) => {
var nx = new XElement(x);
nx.Element("ID").Value = (cnt+1).ToString();
return nx;} );
var el2 = new XElement("root2");
foreach (var s in rs) el2.Add(s);
var doc2 = new XDocument(el2);
Console.WriteLine(doc2);
今回は読み込んだXdocumentをいじらないようにしたが、いじっていいなら
Linqは使わず最初に読み込んだXDocumentを直接変更してもいいと思う。
335デフォルトの名無しさん
2009/04/14(火) 23:27:35 WPF の UIElementCollection に対して、
Linq の機能(Where メソッドとか)を使いたいのですが、
UIElementCollection にはそのメソッドがありません。
どうすれば Linq の機能が使えるでしょうか?
Linq の機能(Where メソッドとか)を使いたいのですが、
UIElementCollection にはそのメソッドがありません。
どうすれば Linq の機能が使えるでしょうか?
336デフォルトの名無しさん
2009/04/14(火) 23:34:03 あー、non-generic な IEnumerable に対する Where とかないのか・・・
いったん、 .OfType<UIElement>() っての通すと使える気がする。
いったん、 .OfType<UIElement>() っての通すと使える気がする。
337デフォルトの名無しさん
2009/04/15(水) 11:49:27 OfTypeじゃなくて,元のコレクションに違う型が入ってないことを仮定するCastのほうがベター
※foreach(UIElement item in collection)相当
OfTypeを使うのはOfType<Button>みたいに意図的に型をフィルタリングするときだけ
※foreach(UIElement item in collection)相当
OfTypeを使うのはOfType<Button>みたいに意図的に型をフィルタリングするときだけ
339デフォルトの名無しさん
2009/04/19(日) 23:45:46 良スレなのに過疎ってて残念。
340デフォルトの名無しさん
2009/04/20(月) 12:48:21 SQLは糞
341デフォルトの名無しさん
2009/04/20(月) 18:09:58 何をもって糞と判断してるのか
342デフォルトの名無しさん
2009/04/20(月) 20:08:48 互換領域の文字だからだな
343デフォルトの名無しさん
2009/04/20(月) 22:24:47 int[] a = new int[] { 1, 2, 3 };
a.ToList().ForEach(i => Trace.WriteLine(i) );
ForEach するために毎回 ToList() してるんだけど、
ToList() しなくてすむ方法ないの?
a.ToList().ForEach(i => Trace.WriteLine(i) );
ForEach するために毎回 ToList() してるんだけど、
ToList() しなくてすむ方法ないの?
344デフォルトの名無しさん
2009/04/20(月) 22:33:14 >>343
素直に foreach (var i in a) するか、自分で IEnumerable 用の ForEach 拡張メソッド書くか。
素直に foreach (var i in a) するか、自分で IEnumerable 用の ForEach 拡張メソッド書くか。
345デフォルトの名無しさん
2009/04/20(月) 22:35:22 ttp://neue.cc/2009/04/04_145.html
346デフォルトの名無しさん
2009/04/20(月) 22:59:17 DataTrigger で特定の Rectangle だけ色を変えようと思って、
TargetName を指定したら、Style では TargetName は指定できないという
エラーが出てしまいました。
回避する方法はありますか?
TargetName を指定したら、Style では TargetName は指定できないという
エラーが出てしまいました。
回避する方法はありますか?
347346
2009/04/21(火) 06:16:25 すんません、誤爆です。
348デフォルトの名無しさん
2009/04/25(土) 15:04:39 from age in
349デフォルトの名無しさん
2009/04/25(土) 15:04:53 .
350デフォルトの名無しさん
2009/04/30(木) 20:23:27 実際はLINQ to SQLなのですが、
class Order
{
string syohin;
DateTime transactTime;
}
class SpecialInterval
{
string syohin;
DateTime applyDayFrom;
DateTime applyDayTo;
}
で、Orderは数万件以上、SpecialIntervalは数十件以上あります。
これで、Orderの中から、syohinが一致してなおかつtransactTimeがapplyDayFrom〜
applyDayToの間にあるOrderだけを取得したいのですが、どうしたら
いいでしょうか?
class Order
{
string syohin;
DateTime transactTime;
}
class SpecialInterval
{
string syohin;
DateTime applyDayFrom;
DateTime applyDayTo;
}
で、Orderは数万件以上、SpecialIntervalは数十件以上あります。
これで、Orderの中から、syohinが一致してなおかつtransactTimeがapplyDayFrom〜
applyDayToの間にあるOrderだけを取得したいのですが、どうしたら
いいでしょうか?
351デフォルトの名無しさん
2009/04/30(木) 20:46:13 from order in context.Order
join si in context.Special on order.shyohin equals si.syohin
where si.applyDayFrom < order.transactTime && order.transactTime < si.applyDayTo
select order
ではダメ?
join si in context.Special on order.shyohin equals si.syohin
where si.applyDayFrom < order.transactTime && order.transactTime < si.applyDayTo
select order
ではダメ?
352デフォルトの名無しさん
2009/05/21(木) 21:21:06 .NETとVisual Studioってどういう関係ですか?
.NETの後継??
.NETの後継??
353デフォルトの名無しさん
2009/05/21(木) 21:32:08 .NETは.NET
Visual StudioはVisual Studio
Visual StudioはVisual Studio
354デフォルトの名無しさん
2009/05/21(木) 22:07:37 パイナップルと酢豚みたいなもんだな
355デフォルトの名無しさん
2009/05/21(木) 22:08:10 >>354
それだと、.NETは要らない子になっちまうじゃないか。
それだと、.NETは要らない子になっちまうじゃないか。
356デフォルトの名無しさん
2009/05/21(木) 22:59:46 >>354
吹いたww
吹いたww
357デフォルトの名無しさん
2009/05/21(木) 23:13:02 パイナップルのない酢豚なんて・・・
358デフォルトの名無しさん
2009/05/22(金) 13:52:09 オレも邪魔だと思ってたが、無いと寂しいw
359デフォルトの名無しさん
2009/05/22(金) 14:38:39 で、
.NET = パイナップル
VS = 酢豚
っていう結論でいいのか?w
.NET = パイナップル
VS = 酢豚
っていう結論でいいのか?w
360デフォルトの名無しさん
2009/05/30(土) 17:03:50 .NET = フレームワーク
VS = IDE
VS = IDE
361デフォルトの名無しさん
2009/06/01(月) 13:49:45362デフォルトの名無しさん
2009/06/24(水) 16:09:02 >>244-246って他社製のプロバイダ使ってってこと?
363デフォルトの名無しさん
2009/07/08(水) 22:18:41 LINQ to Object やyield returnを使っていて
ふと「これ、何のために使っているんだろう」と思ってしまう。
旧.netと互換性がなくなる上に、実行速度は条件次第(そして多くの場合)落ちるし。
これらの目的は「可読性を上げる」って認識でおk?
ふと「これ、何のために使っているんだろう」と思ってしまう。
旧.netと互換性がなくなる上に、実行速度は条件次第(そして多くの場合)落ちるし。
これらの目的は「可読性を上げる」って認識でおk?
364デフォルトの名無しさん
2009/07/08(水) 22:31:05 yield return は 2.0 からあるぞ。それより前となると
Generics もないので互換性気にするだけアレというか・・・
Linq to Objects は遅くなるのは確かだけどスケーラビリティは
あるんだよなぁ。Linq がといったほうがいいかもしれないけど
Generics もないので互換性気にするだけアレというか・・・
Linq to Objects は遅くなるのは確かだけどスケーラビリティは
あるんだよなぁ。Linq がといったほうがいいかもしれないけど
365デフォルトの名無しさん
2009/07/08(水) 22:35:58 とりあえず書いて楽になったとおもわんか?
思わないなら別に使わなくていいだろ。
自分はIEnumerable<T>系を自分のライブラリでも多用してるし、yield使わないでIEnumerable返すコードなんか書きたくもないが。
思わないなら別に使わなくていいだろ。
自分はIEnumerable<T>系を自分のライブラリでも多用してるし、yield使わないでIEnumerable返すコードなんか書きたくもないが。
366デフォルトの名無しさん
2009/07/08(水) 22:36:57 MSはyield使いまくってるよ
yieldはフレームワークを作る人のための機能、LINQは使う人のための機能だな
yieldはフレームワークを作る人のための機能、LINQは使う人のための機能だな
367デフォルトの名無しさん
2009/07/08(水) 22:38:09 .NET 4.0 のPLINQに期待。
CTPで試したけど、お手軽並列化はかなり便利だった。
CTPで試したけど、お手軽並列化はかなり便利だった。
368デフォルトの名無しさん
2009/07/08(水) 22:38:59 トン。なるほど。
確かに非常に楽にはなるし、拡張も楽だし、バグも入りにくいと思う。
でも、コードレビューに速度至上主義者がいるとそれが理解されないのよね。
確かに非常に楽にはなるし、拡張も楽だし、バグも入りにくいと思う。
でも、コードレビューに速度至上主義者がいるとそれが理解されないのよね。
369デフォルトの名無しさん
2009/07/08(水) 22:48:23 実際にボトルネックになるような場所でlinq使って叱られるのは当然だが
「なんか遅そうなコード」を見ただけで騒ぐのは
速度至上主義者じゃなくてただの阿呆や
「なんか遅そうなコード」を見ただけで騒ぐのは
速度至上主義者じゃなくてただの阿呆や
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 ★4 [少考さん★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★3 [Hitzeschleier★]
- 三谷幸喜氏 温泉嫌いの理由を熱弁「知らない人の股間を素通りしたお湯なんですよ」「おじさんの肛門を通り過ぎたお湯が自分の前に」 [Ailuropoda melanoleuca★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 [少考さん★]
- 「ヒートテックに寿命があります」ユニクロが明かした“3年劣化”の理由 暖かさが落ちる意外な原因とは [ぐれ★]
- 【芸能】粗品 「間違ったお笑いの常識が放送されている」「テレビ見てる素人って、笑い声でしか面白いかどうか判断できない。可哀想」 [冬月記者★]
- 他サポ2025-302
- 阪神競馬5回4日目 阪神JF
- 【NJPW】新日本プロレスワールド part.2431
- 第80回甲子園ボウル 立命館大学 vs 関西学院大学★1
- 中山競馬5回4日目その2カペラエス
- とらせん IP付き
- 不知火舞​(龍虎の拳)がフィギュア化キタ━━━━(゚∀゚)━━━━!! [768095501]
- 【衝撃】電池が液漏れした・・・・・・・・・・・・ [793051416]
- 【悲報】すまん何で日本ってこんなに反『中国』が増えたんだ?ネトウヨどころかそこらの一般人レベルでもゴロゴロいる [483447288]
- 【悲報】竹田恒泰 「世界で最も野蛮な軍国主義国家は、中華人民共和国です。中華人民共和国の軍国主義は全人類の公敵。」 [733893279]
- あ、出ちゃう、イクッ😫💦🏡
- 少額脱税ってバレるかな?
