タグ

LINQに関するcrafのブックマーク (40)

  • LINQで書くとデバッグしづらいよね?そんなことないよ - かずきのBlog@hatena

    小ネタです。 LINQで処理をぱぱっと1ステートメントで書けると気持ちいいですよね。 でも、デバッグ難しくない?ということがあるのですが大丈夫です安心してください。 ブレークポイントのはり方のコツさえつかめば大丈夫です。例えば以下のようなコードがあるとします。 using System; using System.Linq; namespace ConsoleApp10 { class Program { static void Main(string[] args) { var numbers = new[] { 1, 2, 2, 3, 3, 3, 4, 4, 4 }; var values = numbers .Where(x => x % 2 == 0) .Distinct() .Select(x => x * x); foreach (var value in values) {

    LINQで書くとデバッグしづらいよね?そんなことないよ - かずきのBlog@hatena
  • 基礎から学ぶLINQの仕組み - Qiita

    C# Advent Calendar 2016の記事です。社内勉強会の資料をリライトしました。新人研修を終えてそれなりにC#が書ける程度の新人が想定読者です。 このテキストについて LINQを自力で実装するために必要なC#の知識をまとめています。LINQの詳細な動作を知ると様々な応用がききます。ぜひ知っておきましょう。 具体的には次のコードが理解できるようになるのが目標です。 public static IEnumerable<TResult> Select<TSource, TResult>( this IEnumerable<TSource> source, Func<TSource, TResult> selector) { foreach (var item in source) { yield return selector(item); } } 短いコードに様々な要素が詰め込ま

    基礎から学ぶLINQの仕組み - Qiita
    craf
    craf 2016/12/22
  • Writing LINQ queries in WinDbg

    Hi Everyone! For those of you that haven't seen, we recorded an episode of Defrag Tools with our friend Andrew Richards where we talked a bit about the debugger object model.  You can find it here! Today I'm going to do a tutorial covering the basics of how to write a LINQ query from start to finish for those of you that might not be familiar with LINQ and the thought processes behind creating a q

    Writing LINQ queries in WinDbg
  • LINQPadを使ってみよう - Qiita

    LINQPadとは 無償のスタンドアロンアプリケーションであり(有償版もある)Joseph Albahari氏によって作成されました 名前にあるようにLINQの実行はもちろん、.NETのコードであれば、すぐに実行可能な環境です サイトはこちら http://www.linqpad.net/ まずは動かしてみる ちょっとしたコードを確認したい場合に、LINQPadは以下のようにすぐに試す事が可能です 各画面の構成は以下のようになっています Editon 2015/04/03 時点では、Free、Pro、Developer、Premium の4種類のEditionがあります Edition毎に使える機能の概要 今までのPremiumが今回のDeveloperになったイメージです 後述しますが、今回追加されたdebugger機能が使えるのが、新しいPremiumのみとなってます Dumpメソッド

    LINQPadを使ってみよう - Qiita
    craf
    craf 2016/02/13
  • Interactive LINQPad: お手軽ポチポチ Rx

    LINQPad は .NET コードのお手軽な実行環境、そして良質なデータ ビジュアライザとして全ての .NET ユーザの必携ツールといっても過言ではないといえるのではないでしょうか。入力補完などの一部の便利な機能は有料ではありますが、実際のところ、購入する価値は十分にあると思います。 それはさておき、LINQPad はどんなオブジェクトも .Dump() すれば見やすく表示してくれるというのが最高に魅力的です。これだけでも LINQPad は十分に便利で使う価値があります。ですが、LINQPad の便利さはそれに留まるものではありません。 …ということ等々を以前書いたりもしましたが、文章ばかりの記事でして面白みにも少し欠けていました。先の記事は割と総論的な内容だったので、趣向を変えて、面白く膨らませそうな LINQPad の便利な使い方について、折にふれて書いていこうと思います。 さて、

    Interactive LINQPad: お手軽ポチポチ Rx
    craf
    craf 2016/02/12
  • neue cc - Reactive Extensions + asyncによるC#5.0の非同期処理

    Reactive Extensions(Rx)の利点ってなんですかー、というと、合成可能なんです!ということです。合成可能って何?というと、LINQが使えるということなんです!です。じゃあ他には、ということで…… 詳しくはこの動画/スライド見るといいです。 Curing Your Event Processing Blues with Reactive Extensions (Rx) | TechEd Europe 2012 | Channel 9。最初のほうの例が非常に分かりやすいので、とりあえずその部分だけ引っ張ってきますと // sender, argsの型がふわふわ exchange.StockTick += (sender, args) => // senderの型が消えてる { if (args.Quote.Symbol == "MSFT") { // 合成できないからイベント

  • よくあるコーディングパターンと LINQ to Objects の対応付け - 予定は未定Blog版

    あると便利ですよね、ということで書いてみた。 よくあるコーディングパターンには yield とか使ってないです。 こっちの方がよくありそうでしょ? Select 全ての要素に何らかの処理を行いたいときに使用します。 // よくあるコーディングパターンその1 // 全ての要素を2倍するメソッド public IEnumerable<int> DoubleAll(int[] target) { var result = new int[target.Length]; for (int i = 0; i < target.Length; i++) { result[i] = target[i] * 2; } return result; } // Selectで書き直し public IEnumerable<int> DoubleAll(IEnumerable<int> target) { re

    よくあるコーディングパターンと LINQ to Objects の対応付け - 予定は未定Blog版
  • 同時実行の問題: データ並列パターンと PLINQ

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 データ並列パターンと PLINQ Igor Ostrovsky マルチコア プロセッサは、主流のデスクトップ コンピューターではすっかり一般的になりましたが、マルチコア プロセッサの真価を完全に引き出すアプリケーションを作成することはいまだに困難です。しかし、マルチコアによる並列処理は確かに実現可能であり、よく利用されているアプリケーションの多くが、マルチコア コンピューターではパフォーマンスを向上できるように変更されています。.NET Framework のバージョン 4 では、マルチコア向けのアプリケーション開発を支援するツールとして、コーディネーションと同期の新しいプリミティブとデータ構造のセット、Ta

    同時実行の問題: データ並列パターンと PLINQ
  • DSL (Domain Specific Language)

    プログラミング言語は、目的を絞れば絞るほど、その目的に対しては強力、かつ、簡潔に書ける文法を提供できます。その一方で、用途ごとに異なるプログラミング言語があるというのも、作るコストも学習するコストも高くなりすぎます。 よく目にするプログラミング言語はだいたい汎用用途(汎用プログラミング言語)です。一方の、目的を絞ったプログラミング言語をドメイン特化言語(domain specific language、略してDSL)といいます。 ここでは、汎用/ドメイン特化それぞれの利点や、その背景にある「モデル化」の考え方、汎用プログラミング言語とDSLとの間の関係などについて説明していきます。

    DSL (Domain Specific Language)
  • CLinq - LINQ support for the C++/CLI language

  • LINQ is Monads. リンクはモナド - 当面C#と.NETな記録

    nsharp さんに教えてもらったビデオを見てみました。ごちゃごちゃしたメモだけどもう眠いのでそのまま書き残しておきます。 http://channel9.msdn.com/Showpost.aspx?postid=358968 「LINQなんてのは、実装は適用連鎖ですが、根底にある発想は関数合成の方だったりします。」って言葉がとても気になったので。 ヒゲと帽子が似合うって話はおいといてw 関数の合成、圏論のモノイド、関数合成がモノイドを成すこと、そしてモナドを説明してくれるビデオ。でも、英語聞き取るのが難しいorz 型 A を取って同じ型 A を返す(集合 A から A への)関数全体は、関数合成、恒等関数 id (Iコンビネータですね)に関してモノイドを成す、っていう定番のお話。そして、関数合成とモナドの「>>=(bind、束縛)」は同じように「くっつけるもの」だって言ってるようです。

    LINQ is Monads. リンクはモナド - 当面C#と.NETな記録
  • Mircea Trofin's blog

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    Mircea Trofin's blog
    craf
    craf 2008/03/26
  • クエリ式で総当たり - NyaRuRuが地球にいたころ

    発端 『C# の yield return の使い道 - u_1rohのカタチ』にコメントを書く. 久しぶりに yhara くんの『Ruby勉強会@関西-16「30分でわかるcallccの使い方」- Greenbear Diar』を読み直す. oxy くんの『Non Determinism - Rubyのある風景』を思い出す. そういや C# 3.0 なら書けるなぁ. とまあそんな感じで. リストモナドで非決定性計算以上のリストモナドの性質を使うと、総当たりのプログラム、格好よくいうと非決定性の計算を行うことができます。 SICPから次のような問題を借りることにします。 Baker, Cooper, Fletcher, MillerとSmithは五階建てアパートの異なる階に住んでいる。Bakerは最上階に住むのではない。Cooperは最下階に住むのではない。Fletcherは最上階にも最下

    クエリ式で総当たり - NyaRuRuが地球にいたころ
    craf
    craf 2008/03/14
  • Query Expression Pattern で Maybe monad を書く - NyaRuRuが地球にいたころ

    Query Expression Pattern C# 3.0 には Query expression pattern というものがあって,このパターンと同じ構造を持つ型はクエリ式に使うことができます.IEnumerable<T> かどうかは関係ありません.duck-typing みたいですね. delegate R Func<T1,R>(T1 arg1); delegate R Func<T1,T2,R>(T1 arg1, T2 arg2); class C { public C<T> Cast<T>(); } class C<T> { public C<T> Where(Func<T,bool> predicate); public C<U> Select<U>(Func<T,U> selector); public C<V> SelectMany<U,V>(Func<T,C<U>>

    Query Expression Pattern で Maybe monad を書く - NyaRuRuが地球にいたころ
    craf
    craf 2008/03/14
  • アップキャストと型推論に見る思想の違い - NyaRuRuが地球にいたころ

    C++ でメソッドチェインが流行らなかったのは参照の寿命管理が厄介だったからじゃね? いやまあ適当に言ってみただけです気にしないで下さい.実は単に偶然の産物という気もします. struct Odd { int dummy; }; struct Even { int dummy; }; Odd ToOdd(Even& source) { return Odd(); }; Even ToEven(Odd& source) { return Even(); }; Even operator >> (Odd& source, Even op(Odd &) ) { // 実用上はコピーなしに一時オブジェクトの参照を返したい // C++0x では解決かな? return op(source); } Odd operator >> (Even& source, Odd op(Even &) ) { r

    アップキャストと型推論に見る思想の違い - NyaRuRuが地球にいたころ
    craf
    craf 2008/03/14
  • なぜ C# でメソッドチェインが楽しいのかを考えてみた - NyaRuRuが地球にいたころ

    未だにモニャド (失礼,かみました) が何なのかよく分かってないんですが,何となく分かってきたような気もするので,とりあえず何か書いてみる試み.とはいえよく分かっていないかもしれない言葉で書くのは怖いので,以下では C# の言葉で何が楽しいのかを書いてみることにしますよ. LINQ における interface の使い方は今までとちょっと違う Java 以来 (もっとも,私にとってこれは COM 以来の,ですが) の「interface の時代」にプログラミングするときに,私の関心は主に次の 2 点に集約されていました. いま考えているこのクラスはどんな interface を実装するか? いま考えているこの処理を行うためには,どんなオブジェクトを受け取って,それはどんな interface を備えていれば必要十分か? 例えば ArrayList は IList だよねとか,このアルゴリズ

    なぜ C# でメソッドチェインが楽しいのかを考えてみた - NyaRuRuが地球にいたころ
    craf
    craf 2008/03/13
  • user.config ファイルを探す : または実用的な LINQ サンプル - 当面C#と.NETな記録

    クライアントで動く .NET アプリのアプリケーション設定で、ユーザースコープなデータを定義すると user.config ファイルに記録されます。この user.config ファイルを探して列挙するコードを書きました。id:siokoshou:20071227#p1 のファイル列挙のサンプルとしてどうぞ。 ApplicationSettingsBase.Upgrade() をオーバーライドするときや、よそのアプリの user.config を見たいときなどに使えます。 user.config の FileInfo を列挙して返します。バージョンが新しいものから古いものへ、同じバージョンがあれば(署名してないと実行ファイルのパスを変えると user.config は異なるディレクトリに記録される)書き込み時刻が新しいものから古いものへ、という順に並べて返します。LINQ でさらに絞り込み

    user.config ファイルを探す : または実用的な LINQ サンプル - 当面C#と.NETな記録
    craf
    craf 2008/03/11
  • Part4 LINQで変わるデータベース開発

    LINQ(Language Integrated Query:統合言語クエリー)は,C# 3.0およびVisual Basic 9.0で追加された,データを抽出するための新しいプログラムの記述方法です。LINQの特徴は,簡単な記述でデータの集合から「必要なデータ」の「必要なメンバー」のみを「必要とする順序」で取り出せるところにあります。 (注意:記事はVisual Studio 2008のベータ版をベースに執筆しています) LINQのプログラムを見てみよう まずは,簡単なサンプル・プログラムを作成してLINQの動作を確認してみましょう。Visual Studio 2008(以下,VS2008)でコンソールアプリケーションのプロジェクトを新規に作成し,リスト1のようなプログラムを記述してください。プログラムを実行すると,Genderの値として1を持つデータがAgeの値が小さい順に以下のよう

    Part4 LINQで変わるデータベース開発
    craf
    craf 2008/03/04
  • The Origin of LINQ to SQL を訳してみた - NyaRuRuが地球にいたころ

    「The Wayward WebLog」より Matt Warren の『The Origin of LINQ to SQL』 昨日そばをべてから作業を初めて,当は昨年中に終えたかったんですが,結局ずれ込んでしまいました.意訳全開ということもあって,だいぶ誤読・誤訳が混ざってそうなのにご注意を.ここまで必死に英文読んだのは大学の入試勉強以来かも.細かいところの見直しはちゃんとやっていないので,後で気付いたらなおします. LINQ to SQL の起源 (原文) LINQ to SQL,こいつは恐らくマイクロソフトが 10 年挑戦してきた中で初めて実際に出荷される Object/Relational Mapping だけど,かつてこれは存在するとさえ思われていなかったんだ. それはちっぽけな Visual Studio Project として私のデスクトップ機で始まったんだ.遡ること 2

    The Origin of LINQ to SQL を訳してみた - NyaRuRuが地球にいたころ
    craf
    craf 2008/02/22
  • C# にて副作用は必要だが戻り値が void で困った場合にどうするか? - NyaRuRuが地球にいたころ

    追記2 落とし穴は Visual Studio 2008 and .NET Framework 3.5 Service Pack 1 Beta で塞がれました. 追記 この話は落とし穴があるので注意.詳しくは最後の追記を. Unit 型が無くて困るぜな話. letで代入を伴うのでvoidなメソッドを呼べないといってintに変えてまでどっぷり暗黒面という事で、「その気になればif、for、foreach、whileといった制御構文みんな要らないよね」ではありますが適度に使ってくれたほうが絶対良いですね。 re: LINQでリバーシ(4) そして暗黒面へ 2008/02/07 9:40 菊池 - 菊池 Blog これについては, "voidを返すメソッド() is object"でboolを表現できる 素数を求める1行プログラム(C#3.0編) - このブログは証明できない。 ってのを最近見て

    C# にて副作用は必要だが戻り値が void で困った場合にどうするか? - NyaRuRuが地球にいたころ
    craf
    craf 2008/02/22