タグ

LINQに関するkana321のブックマーク (7)

  • LINQ:文字列コレクションで複数キーワードのAND検索をするには?[C#、VB]

    LINQを使って文字列のコレクションを処理するとき、AND検索をしたいことがあるだろう。あらかじめ条件が決まっているならば、複雑な条件式であってもそのままWhereメソッド(System.Linq名前空間のEnumerableクラスに定義された拡張メソッド)に渡すラムダ式に記述すれば済む*1。しかし、例えばエンドユーザーからの入力を基にして検索を実行するような場合には、ANDでつなぐ条件の数が動的に変化する。そのような場合はどうしたらよいだろうか? 稿ではその方法を説明する。 AND/ORが入り混じった複雑な条件の場合 あらかじめお断りしておくが、AND/ORやかっこが入り混じった当に複雑な条件の場合には、ラムダ式を動的に組み立てて式ツリーを生成することになる。そのような複雑な検索条件では、構文解析が必須であろう。構文解析を行うなら、そのついでに式ツリーを生成するのはそれほど困難なこと

    LINQ:文字列コレクションで複数キーワードのAND検索をするには?[C#、VB]
    kana321
    kana321 2014/12/10
    LINQでWhereメソッドをチェーンさせることで、文字列コレクションに対するAND検索を実現する方法を解説
  • 第1回 神獄のヴァルハラゲートの裏側をCTOが語り尽くす! | gihyo.jp

    C#の非同期構文をフル活用し業界最速の応答速度を実現 現在、多くのソーシャルゲームPHPPythonRubyといった、いわゆるLightweight Languageを使って開発されていますが、(⁠株)グラニではプログラミング言語としてC#を採用し、Windows環境で開発および運用を行っています。実は、現在提供している「神獄のヴァルハラゲート」は、2013年1月のリリース時点ではPHPを利用していました。しかし同年4月にC#への移植を開始し、3ヵ月後の7月16日にはC#への切り替えを完了させています。 このようにC#にこだわっている理由の一つがパフォーマンスです。ソーシャルゲームはユーザがアクションを起こすたびにデータが更新されるというしくみ上、どうしてもViewのキャッシュを効かせられなかったり、1万リクエスト/秒を超えるような高負荷が発生したりしますが、そうした状況においても平

    第1回 神獄のヴァルハラゲートの裏側をCTOが語り尽くす! | gihyo.jp
    kana321
    kana321 2014/11/09
    神獄のヴァルハラゲートの裏側をCTOが語り尽くす!
  • JavaScriptで配列をLINQにより処理できるライブラリ「linq.js」を利用するには? - @IT

    ちなみに、2つ目の<script>要素内に記述されているのは、最もシンプルなlinq.jsを用いたJavaScriptコードの例である。EnumerableオブジェクトのFromメソッドのパラメータにより配列データを受け取り、ToArrayメソッドにより配列オブジェクトに変換し、元の配列のコピーを作成している。なお、linq.jsが提供する関数を稿では「メソッド」と呼んでいる。 ファイル「linq.js」はライブラリ体で、これを参照することでlinq.jsを利用できる。また、ファイル容量を削減したい場合は「linq.js」の代わりに「linq.min.js」(=JavaScriptコードが圧縮されたもの)を参照してもよい。なお、Visual Studioを利用している場合は、同一ディレクトリに「linq-vsdoc.js」も配置することで、IntelliSenseによる入力補完を働かせ

    kana321
    kana321 2014/03/11
    NET開発者であれば、慣れ親しんだLINQの知識をそのまま生かせるのも大きなメリットとなる。
  • Reactive Extensionsの概要と利用方法

    連載:Reactive Extensions(Rx)入門 第1回 Reactive Extensionsの概要と利用方法 河合 宜文 2011/11/01 C# 3.0より導入され、プログラミング・スタイルに大きな変革をもたらしたLINQはご存じだろうか。詳しくは「特集:Road to LINQ」で紹介されているが、データ加工における処理の手間を大きく解消するものである。LINQの特徴として、各種のデータソース(=配列やXMLデータ、SQLデータベースなど)に対して統一的な記法を提供することが挙げられる。 Reactive Extensions(以降、Rx)は、LINQが適用できるデータソースの概念を「非同期」と「イベント」に広げた、いわば「LINQ to Asynchronous」「LINQ to Events」とでも言うべきものである。それにより、従来では手間のかかった複雑な非同期処理

  • C#で解説する「データ処理の直交化と汎用化」(1/3) - @IT

    稿では、LINQ(Language Integrated Query)の生い立ちについての話をしてみたい。 LINQは、C# 3.0の目玉機能として、2005年夏に発表、2008年に初頭に製品化されたものである。製品化から数えてももう3年が過ぎたわけだが、いまだ誤解の多い機能だろう。LINQの一側面だけを見て、 O/Rマッパーの一種 C#やVB(Visual Basic)のコード中にSQL風のクエリを埋め込める機能 などといわれることもある。これは、一側面が見えているだけいいかもしれない。まれに、 if文やfor文が書ければ、プログラムは書ける C# 3.0/VB 9で何だかいきなり機能が増えすぎてもう付いていけない というような声さえ聞こえてくる。 しかし、そう身構えないでほしい。LINQが目指すものは実のところ単純で、「データ処理の直交化と汎用化」である。この考え方は何もLINQで初

    kana321
    kana321 2014/02/28
    C#で解説する「データ処理の直交化と汎用化」
  • neue cc - Modern C# Programming 現代的なC#の書き方、ライブラリの選び方

    と、題しまして第1回 業開中心会議 .NET技術の断捨離で話してきました。岩永さんが概念的なものを、私がC#とライブラリにフォーカスして具体的なものを、パネルディスカッションでフレームワーク周りの話を。的な分担だったでしょうか。 Modern、といっても、すんごく最先端で尖った感じ!ではなくて、来は今そこに当たり前のようにあるやり方を、ちゃんと選択していこう。といったような内容です。対象をどの辺に置こうかなあ、といったところで、やっぱ@ITでいうギョーカイだと、ラムダ禁止とか.NET 2.0を強いられているんだ、とかそういう人も少なくないのだろうと思ったので、その辺りを最低ラインに敷いて中身を組みました。 つまりLINQ使えってことですよ!というか、もう登場から5年も経とうとしているのに、未だにLINQ使うべきだよ!と言って回らなければならない事実が悲しくもあり。ちなみに他の言語にもLI

  • linq.js ver.3 (Part 1/2) - プロ生勉強会第17回@品川 #pronama

    2012/8/25開催 プログラミング生放送勉強会 第17回@品川 のセッションです詳細: http://pronama.jp/17「linq.js による幸せ JavaScript コレクション処理補完生活」LINQ 好きの LINQ 好きによる LINQ 好きのためのお手製コレクション処理ライブラリ、linq.js がリニューアル(……まだ作り途中なのだけどプロ生の日には出来上がっているはず!)。LINQ とは何ぞやかから、VisualStudio 2012 との組み合わせにより動的言語とは思えない入力補完を実現、などなどをご紹介します。スピーカー: neueccさん(‏@neuecc)次 → sm18739125lv104605060mylist/28883076

    linq.js ver.3 (Part 1/2) - プロ生勉強会第17回@品川 #pronama
  • 1