1 名前:デフォルトの名無しさん [2008/02/09(土) 23:51:34 ] VisualStudio2008より追加された便利で強力な機能 統合言語クエリ (LINQ : Language Integrated Query) ちょっと使ってみると、意外と難しいし、テクニック的にも奥が深いものです。 関数型言語にしかないような機能ラムダ式(Lambda式)などはオブジェクト指向とは一味違う機能です。 DataBaseの操作にも、Xmlの操作にも、さらにもっと単純な配列なコンテナにさえ機能する 言語共通・高汎用な統合言語クエリを皆で一緒にマターリ勉強しましょう。 質問、便利なマイテクニックの発表、いろいろやっちゃってください。
496 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 15:05:45 ] そういう話じゃなくてさ int i = 0; otherClass.Items = source..Where(x=>x.Value == i++); こんなことされるともうどうなるか分からないだろ OtherClassのItemsの評価回数に依存することになる
497 名前:デフォルトの名無しさん mailto:sage [2010/01/16(土) 21:53:13 ] >>496 いいたいことはわかるが動くコードかこうな。 説得力ないから。
498 名前:デフォルトの名無しさん mailto:age [2010/02/04(木) 18:12:53 ] すみません、質問です。 LINQには、バージョンはあるのでしょうか? VS等のバージョンはどんどんとあがっていっていますが、 コードが同じもので動かなくなるかどうかを知りたいです。 例えば、CLRに完全依存の構造なので、CLRバージョンが変わる時に 注意が必要、など
499 名前:デフォルトの名無しさん mailto:sage [2010/02/04(木) 20:54:49 ] 基本的に上位互換だから気にしなくていい
500 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 13:27:50 ] すみません、質問です。 LINQで更新や削除は行えるのでしょうか? たとえ行えたとしても、細かい制御が出来ないからADO.NETで ExecuteNonQuery使った方が楽っていう結論になってたりするのかな?
501 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 13:29:30 ] Linq to SQL Linq to Entity 両方ともORMだから可能。
502 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 13:52:18 ] いったんエンティティに読み込むから大域処理には向いてないな。
503 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 19:05:38 ] 一括更新用の拡張メソッドを作っている人達もいるな。
504 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 19:26:15 ] テーブルは第3正規化がされているのが普通だし、多数の表の集合演算が入るから 結局はエンティティと対になるストアドプロシージャを組んでしまう。LINQ気持ち悪い。
505 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 21:36:19 ] LINQは排他制御がきちい
506 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 17:03:06 ] L2Sは更新がちょっとという人は、DataContext.GetCommand(query).CommandTextで取得した WHERE句を元にUPDATE句やDELETE句を組み立てて、DataContext.ExecuteCommand()を実行する ような拡張メソッドを用意するのが良いと思うよ。 そうすれば、更新処理はADO.NETを使ってベタでとかやらずに、トランザクションや排他に ついてはExecuteNonQueryと同じ考え方で設計出来るから。 っで、それ以上の事をやりたくなったらストアドで。
507 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 01:17:13 ] >>506 結局はSQLを書くってこと?LINQの意味なくない?
508 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 06:55:49 ] この辺を参考に。 ttp://weblogs.asp.net/jeffreyzhao/archive/2008/03/06/linq-to-sql-extension-batch-deletion-by-lambda-expression.aspx ttp://www.aneyfamily.com/terryandann/post/2008/04/Batch-Updates-and-Deletes-with-LINQ-to-SQL.aspx
509 名前:デフォルトの名無しさん [2010/02/13(土) 17:28:02 ] Distinct重複は取り除けるけど、重複しているものだけを 取り出すには、どうすればいい
510 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 17:48:11 ] groupbyしてwhere count>2って感じ。
511 名前:デフォルトの名無しさん [2010/02/13(土) 18:48:06 ] >>510 サンクス int[] numbers = { 5, 4, 1, 3, 9, 5, 8, 4, 6, 7, 2, 5, 0 }; var Nums = numbers.GroupBy(num => num).Where(num => num.Count() >= 2); foreach (var x in Nums) Console.WriteLine("{0}:{1}",x.Key,x.Count());
512 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 19:27:29 ] そこらへんはLINQというよりSQLのセンスだよな。
513 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 20:55:57 ] LINQ 初めて使ってみたけどなんか面白いね ていうか拡張メソッドが面白いのか
514 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 20:59:49 ] 何も考えずに乱用すると破綻するけどねw
515 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:50:24 ] 基本DBはストアドを呼び出し。もし必要であればEntityの複合型データにLINQ。 という使い分け。テーブルには絶対にLINQでアクセスしない。 MVVMデザインアプローチで組んでいるが、まずLINQの出番はない。
516 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 21:57:31 ] Linq to Object は使うわ
517 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 22:22:07 ] >>514 やべえ調子に乗って使いまくるところだったww
518 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:04:13 ] 自分は、L2Sに関しては式ツリーからSQLを生成するライブラリだという捉え方。 他のLINQ to ホゲホゲについてはまた別の捉え方だけど。
519 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:06:47 ] メソッド形式のto Objectsは普通に便利 メソッド形式で使ってる限りはループで書くのに比べて見づらくなることもまず無いし
520 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:16:26 ] to IQueryableなものとto IEnumerableなものでは考え方は違うわな。
521 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:03:10 ] LINQはCollectionデータだけを対象にして使う分にはいいね。
522 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:14:49 ] まぁ大抵の感想はそこにいきつく。 無理にLINQtoSQLを使うことはない。
523 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:24:09 ] Expressionで処理を構築するっていう考え方は割と好きだけどね−。
524 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:25:34 ] IEnumerable に ForEach がないのは何でなんだろ
525 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:36:00 ] >>524 副作用起こす系統はLINQの標準には入れたくなかったんじゃないかと。
526 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:36:11 ] >>524 >>472 まぁそれでも作ろうと思えば public static void Foreach(this IEnumerable<T> source, Action<T> callback) { foreach(var i in source) callback(i); } 簡単に自作できちゃうが。
527 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:45:40 ] >>525-526 なるほどー >>526 それ作ったw
528 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 13:40:26 ] C#って3.0以降は標準化されてないけどするとしたらExpression<T>とかdynamicとかどうするんだろう 激しくランタイムに依存するわけだけど全部言語仕様にハードコードするのかな
529 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 20:27:09 ] お邪魔します。 実はわりと短期間でACCESS+MySQLで作ったアプリを少し拡張して VB.NET2008 Expressに移植しないといけないのです。 ACCESS VBAでO/Rマッピングもどきを自作で実装していたのですが、 コーディング効率アップのためにLINQの採用を検討しています。 ・単純に、"ODBC経由でMySQLにつないでテーブルから任意のカラムを取ってくる" というサンプルソースか手順リストがどこかにありませんでしょうか? ネットで探しまくっているのですが、LINQ布教用のXMLやら配列やらへの クエリのサンプルは見つかっても、実用的なMySQL/ODBCへの接続宣言を どうするのかが見つからないのです。 ・LINQの習得にADO.NETの知識は必須でしょうか? DAO、ADOときて、これ以上、知識の習得に無駄な寄り道は出来れば 避けたいのですが。 みなさん、よろしくお願いします。
530 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:06:51 ] お前にとっては多分無駄な寄り道だと思うからやめとけば
531 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:09:51 ] 普通に考えてそのまんま移植した方が早い
532 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:38:19 ] 探しまくっても見つからないようなもんが なんで効率アップに繋がると思うのがよくわからんわ
533 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 22:07:19 ] LINQ プロバイダ MySQL でぐぐってわからなかったら無理だからやめておけ
534 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 22:49:42 ] xmlはUTF-8だと思っていたけど、XmlDocument.Load(TextReader) でTextReaderにS-jisエンコードを指定しているコードをみて困惑。 これってどういう意図なんでしょう?
535 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 02:22:37 ] ていうかXMLはUTF-8じゃないというか、何だってありだし。 UTF-8固定ならDeclarationにencodingはいらん。
536 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:47:57 ] まあそういうなよ
537 名前:デフォルトの名無しさん [2010/03/18(木) 01:22:17 ] UTF-8はデフォルトなだけ
538 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 00:55:11 ] なんか来てた Chapter16 LINQとメソッド構文 ttp://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_16/extremecs_16_01.html でもこんな概略の説明なんて既に色々あるんだから、もっと深い奴、 例えばLINQの落とし穴とかそういうところを説明したドキュメントがホスィ
539 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 08:10:45 ] コアな使い方はブログを見て回ればいいんじゃね?
540 名前:デフォルトの名無しさん mailto:sage [2010/03/30(火) 09:38:37 ] それがマンドクサイのでいろいろとコアなのがまとまってて欲しいのが正直なところ。 いや、そんなことじゃいけないとは思うんだけどね(;´Д`)
541 名前:デフォルトの名無しさん [2010/06/05(土) 19:53:02 ] 今更ながらLINQ便利すぎ! Listに格納したオブジェクトの並べ替えとフィルタが楽すぎて笑った。 並べ替え用のDatatable作ってたりいったい今まで俺は何をやっていたんだろう‥
542 名前:デフォルトの名無しさん mailto:sage [2010/06/05(土) 19:57:34 ] VB脳乙 Listのソートやフィルタは別にLINQやDataTable使わなくても簡単にできる
543 名前:デフォルトの名無しさん [2010/06/06(日) 00:08:23 ] >>542 わざわざそういうクラスを実装した上でLISTを作ればの話だろ? オブジェクト型のList作って、適当に格納したオブジェクトの対象としたいメンバさえ一致すれば、一行で書けてしまうは凄い。 わかっててやらないと危ういけど‥
544 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 00:18:40 ] Listにソートmethodつければ良いだけじゃん
545 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 01:05:19 ] List<T>.Sort() List<T>.Find() とかないの?使えないの?
546 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 10:17:56 ] その二つはVB使いには使い方が理解しづらいメソッドの定番 LINQも同様に高階関数使ってるけどクエリ式で隠してるわけだ
547 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 13:33:23 ] 拡張メソッド形式のLINQのわかりやすさは異常。
548 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 00:43:25 ] >>546 なるほど まあC#使いでも foreach(){ if(current==target)...}ってやってるやつもいるな。
549 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 18:47:48 ] 気付いたら>>548 スタイルで書こうとしてて拡張メソッドで書き直すことはたまにあるな あまりにもよく使われるパターンだったから手が覚えてるんだよね
550 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 07:41:28 ] C#, EF4で、ちょっとハマったので質問させてくれ。 DbContextというのがedmxで定義されたコンテキスト、Hogeというのがedmxで定義されたエンティティ型で、 Piyoがedmxとは関係ないクラスだとする。 「DbContext.Hoge.Select(x => new Piyo() { A = x.A, B = x.B })」 みたいな書き方は普通にできて、普通にIQueriable<Piyo>(実体はObjectQuery<Piyo>)が返ってくるよね。 CreateQueryを使って同じようなことがしたいとき(つまりObjectQuery<Piyo>がほしいとき) どうすればいいんだろう? 「DbContext.CreateQuery<Piyo>("SELECT VALUE Piyo (x.A, x.B) FROM Hoge AS x")」 こう書くと、「Piyoなんて型見つからない」って怒られるし、かといってE-SQL内でVALUE Piyoを 指定しないと「MaterializedDataRecordからPiyoに変換できない」と怒られるし(当然だけど)。
551 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 14:35:37 ] 名前空間は?
552 名前:550 mailto:sage [2010/06/10(木) 15:29:40 ] >>551 Hogeは、型はMyApp.Data.Hoge。EdmEntityTypeAttributeでは「DataModel」が名前空間になってる。 「DataEntities」がエンティティセットの名前空間。 PiyoはMyApp.Something.Piyo。コンストラクタに二つの引数がある。 これを踏まえて 「DbContext.CreateQuery<Piyo>("SELECT VALUE MyApp.Something.Piyo (x.A, x.B) FROM DataEntities.Hoge AS x")」 としてみたけど、だめだった。
553 名前:550 mailto:sage [2010/06/11(金) 10:16:21 ] うーん、そもそもCreateQueryってそういう使い方しないのね。 DbDataRecordで受け取るのが一般的なのか。 IQueriableなのに、後からWhereとか追加できない不思議仕様だ。
554 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:12:11 ] ごちゃごちゃ言わずにソース出せ。
555 名前:デフォルトの名無しさん [2010/06/15(火) 15:18:45 ] これ仕事で使ってる人いる?
556 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:29:00 ] OfType()のおかげでArrayListが大復活。 var al = new ArrayList(); al.Add(1); al.Add(2); al.Add(3); al.Add(1D); al.Add(2D); al.Add(3D); var q = al.OfType<double>().Where(n => n >= 2.0);
557 名前:デフォルトの名無しさん mailto:sage [2010/06/15(火) 20:48:14 ] 大復活って、いやいやw せめてList<Object>で……。
558 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 02:06:34 ] ある2つのフォルダ間で同じファイル名かつ更新日時が新しいものをLINQで取得したいです。 IEqualityComparer<FileInfo>を継承したMyCompareを使ってExceptしたのですがうまくいきません。 GetHashCode()で return 1;など定まった値を返せばうまくいくので、GetHashCode()の実装が悪いのかと思います。 しかし、オブジェクトを一意に特定するためのメソッドなのだからそういった実装は間違っていると思います。 もしかしたら全然勘違いをしているかもしれませんが、どなたか助け舟をいただけませんか? よろしくお願いします。 ソース:ideone.com/Ttea4
559 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 04:14:11 ] 比較する際に内部では、最初にGetHashCodeでハッシュコードを取得して、 それが同じ値であったらEqualsで比較する、という動きをします。 なので、GetHashCodeはobj.FullName.GetHashCode()だけ返せばいいんじゃないのかな? LastWriteTimeまで算出に含めるから希望通りに動かないのでは、と思ってみる。 あと、FullNameじゃそもそも「ファイル名」じゃなくてフルパスを取っちゃうから絶対に一致しない。 でも、なんというか、その用途にExceptは違う気もします。
560 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 04:17:39 ] マルチ質問にマルチ回答かw
561 名前:559 mailto:sage [2010/06/24(木) 04:24:52 ] あー、ほんとだ、C#相談室のほうにも同じ質問投げてあったのね。 しかし回答がまるっきり一緒とは……。
562 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 21:15:15 ] >>559 return obj.Name.GetHashCode(); でいけました。ありがとうございました。 過疎スレに質問をしてしまったと投稿してから思い、相談室にもマルチポストしてしまいました。 LINQが大好きなのでこのスレを監視している方がいてくださって嬉しいです。
563 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 21:22:28 ] ところで相談室でも言われたのですが、Exceptを使うのは変でしょうか? 私は差集合で解決できる問題なのかなと素直に思いましたが。 単純にファイルの有無ならば差集合でとれる。 →Equalになる条件が違う →ならばその条件を指定してやればいい という段階を踏んでこのソースの形に.なりました。
564 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 21:32:30 ] 差集合の意味わかってるか?
565 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 21:35:41 ] 積集合だな だからってIntersectを使うのも不適切だと思う
566 名前:デフォルトの名無しさん mailto:sage [2010/06/24(木) 22:38:18 ] ああ、ごめんなさい。 もともとの質問がGetHashCode()の使い方についてでしたので、説明不足な点がありました。 実装したい機能は、AのフォルダからBのフォルダにファイルをコピーするというものです。 コピーする対象は、AにあってBにないファイルです。 この時点で私はExceptを採用しました。 その後で、実は同じファイルがあっても更新日付が新しかったら上書きコピーするという仕様になりました。 SQLでかくと SELECT * FROM TableA A WHERE NOT EXISTS (SELECT * FROM TableB B WHERE A.Name = B.Name AND A.LastWriteDate <= B.LastWriteDate) こんな感じになると思います。 これって差集合と違います?
567 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 04:57:51 ] >>550 つ ObjectContext.Translate<TEntity>
568 名前:デフォルトの名無しさん mailto:sage [2010/11/10(水) 22:58:06 ] 1から見てきたが使いたくなるようなコードがひとつもない しかも直感でわかりにくい
569 名前:デフォルトの名無しさん mailto:sage [2010/11/10(水) 23:24:39 ] >>568 つ関数型言語
570 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 07:21:36 ] ORマッパーになると聞いたが 具体的にどんなふうになるのん?
571 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 20:57:11 ] >>570 1.エンティティを定義 [Table] public class Table1 { [Column(IsPrimaryKey=true)] pubic int Key{ get; set; } [Column] pubic string Column2{ get; set; } [Column] pubic string Column3{ get; set; } } 2.DataContextを定義 public TestContext :DataContext { public TestContext (string connectionString):base(connectionString){} public Table<Table1> Table1; } 2. DataContextをインスタンス化してLINQでアクセス var dc = new TestContext (接続文字列); var list = dc.Table1.Where(row=>row.Column2=="test").OrderBy(row=>row.Column2).ToList();
572 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 22:52:23 ] >>571 S2Daoとかなら簡単なSQLなら自動生成してくれるのに今更って感じだな
573 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 23:10:17 ] S2DAO(笑)
574 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 23:30:48 ] >>571 d JOINとかどうするのだろうかとふっと思った
575 名前:デフォルトの名無しさん mailto:sage [2010/12/14(火) 23:47:23 ] >>574 もちろん出来る msdn.microsoft.com/ja-jp/library/bb399397.aspx
576 名前:デフォルトの名無しさん mailto:sage [2010/12/15(水) 00:45:15 ] >572 えーと自動生成してくれるんだが・・・
577 名前:デフォルトの名無しさん mailto:sage [2010/12/20(月) 13:47:54 ] joSQLじゃ何故流行らない?
578 名前:デフォルトの名無しさん mailto:sage [2011/01/27(木) 16:14:48 ] ちょっと困ってるので質問 TableA: Key1 string Key2 string TableB: Key1 string Key2 string Key3 int この2つのTableをleft joinさせる var q=from n in TableA join m in TableB on new {n.Key1,n.Key2} equals new {m.Key1,m.Key2} into z from a in z.DefaultIfEmpty() select new {n.Key1,n.Key2,a.Key3}; そうするとforeachの段階で「a.Key3がnull許容型じゃない」と怒られる 複合キーだからnull許容には出来ないし、そもそもDefaultIfEmpty()って値型はデフォルトの値入れてくれるんじゃないのかと これってどうすれば?
579 名前:デフォルトの名無しさん mailto:sage [2011/01/27(木) 18:31:19 ] それはLinq to なに?
580 名前:578 mailto:sage [2011/01/27(木) 21:54:36 ] 多分Linq to SQLです 何故「多分」かと言うと、Entityとの違いがわからんからです DBはSQL Server2005です
581 名前:デフォルトの名無しさん mailto:sage [2011/01/27(木) 23:57:21 ] [TableA] Key1 Key2 hoge fuga foo bar [TableB] Key1 Key2 Key3 hoge fuga 1 [Result] Key1 Key2 Key3 hoge fuga 1 foo bar NULL
582 名前:581 mailto:sage [2011/01/28(金) 00:04:25 ] 途中で送ってしもた 例えばDB上でTableA,Bが上記のような場合、LEFT JOINしたらResultのようになるが、 これを(string, string, int)に入れようとすればエラーになって当然 とりあえず、匿名クラスを(string, string, int?)にすれば良い
583 名前:578 mailto:sage [2011/01/28(金) 14:49:37 ] >>582 ありがとうございます ところでselect匿名型で型指定するにはどう書けば良いでしょうか?
584 名前:デフォルトの名無しさん mailto:sage [2011/01/28(金) 18:22:36 ] >>583 キャスト。 new{ Hoge = (int?)x } みたいに。
585 名前:578 mailto:sage [2011/01/28(金) 19:42:25 ] >>584 ありがとうございました 無事できました
586 名前:デフォルトの名無しさん mailto:sage [2011/02/08(火) 22:46:26 ] Linqでクロス集計とかできますかぁ?
587 名前:デフォルトの名無しさん mailto:sage [2011/02/08(火) 22:54:17 ] まあ、そりゃ、ODBCとExcelだのAccessだのでやれてたことはたいていLINQで簡単に書ける。
588 名前:デフォルトの名無しさん [2011/02/18(金) 23:37:45 ] ttp://www.g1sys.co.jp/seminar090515.html にあるような複雑な消費税計算もLINQなら余裕ですよね?
589 名前:デフォルトの名無しさん mailto:sage [2011/02/19(土) 03:20:21 ] 向こうで馬鹿にされたからってこっち荒らすなよ
590 名前:デフォルトの名無しさん mailto:sage [2011/03/25(金) 21:47:03.67 ] LINQ to DataSet良いね。 DataTable(DataViewだっけ?)のソート機能はいまいちわからない。
591 名前:デフォルトの名無しさん [2011/03/25(金) 21:52:20.02 ] LINQは禁止だけどDataTable.SelectはOKって意味が分からんよな
592 名前:デフォルトの名無しさん mailto:sage [2011/03/25(金) 21:56:40.88 ] >>591 そんなイミフな規約があるとはかわいそうに
593 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 09:15:06.03 ] >591-592 .NET Framework 2.0を切れない環境とか。 工場なんかだと今だにWin2K使ってたりするしなあ。馬鹿げた話だ。
594 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 09:58:37.70 ] 禁止といったら使えるのに使わせないということだと思ったけど .NET 2だったら元より使えないじゃない
595 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 10:11:54.06 ] 件のプロジェクトは3.5だよ なお除外申請をすればLINQは使えるけど拡張メソッドは全面禁止の模様
596 名前:デフォルトの名無しさん mailto:sage [2011/03/26(土) 10:33:29.03 ] VBならいけるけど組み込みクエリ演算子の少ないC#では何もできないなそれ