タグ

.netとLINQに関するmaaa328のブックマーク (11)

  • LINQ クエリのみならず、任意のC#/VB が実行可能な、フリーでも使えるLINQPad (1) - troushoo

    概要 LINQ クエリのみならず、任意のC#/VB が実行可能な、フリーでも使用可能なLINQPad を紹介します。 今回はLINQPad を用いて、LINQ クエリの実行方法を紹介します。 内容 LINQPad とは LINQPad を使うと、SQL やXML 等にLINQ クエリを発行することができます。また、任意のC#/VB を実行することもできます。 LINQPad はフリーで使用することが可能ですが、有料版ではintellisense の機能が使えたり、データーベースの編集ができるようになったりします。(有料版との比較は、LINQPad のホームページ(英語)に記載があります) 以下、LINQPad のインストール方法・LINQ クエリを実行する方法を紹介します。全てフリーで使用可能な機能です。 次回、任意のC#/VB を実行する方法を紹介します。 LINQPad のインストール

    LINQ クエリのみならず、任意のC#/VB が実行可能な、フリーでも使えるLINQPad (1) - troushoo
  • プロパティ名を文字列として取得

    例えば、日付を表すDateTime構造体にはDateというプロパティがあります。 これを"Date"という文字列として取得する方法の紹介。 MVVMが流行りだしてViewModelのPropertyChangedの実装がメンドクサイ頃に話題となった問題。 普通は取れないんですが、世の中には頭のいい人がいるもんです。 元ネタはこちら http://blogs.msdn.com/b/csharpfaq/archive/2010/03/11/how-can-i-get-objects-and-property-values-from-expression-trees.aspx

    プロパティ名を文字列として取得
  • LINQ:複雑な検索をするために独自のWhereメソッドを作るには?[C#、VB]

    文字列のコレクションをLINQを使って次々と検索するときに、比較条件を場合分けしたいときがある。例えば、複数の「LIKE検索」をANDで結合したいときなどだ。そのままコードを書きくだせば可能なのだが、コードの可読性を上げようとして失敗することがある。稿では、失敗する例を紹介し、その対策として「Whereメソッド」を独自に作成して使う方法を解説する。 AND/ORが入り混じった複雑な条件の場合 あらかじめお断りしておくが、AND/ORやかっこが入り混じった当に複雑な条件の場合には、ラムダ式*1を動的に組み立てて式ツリーを生成することになる。そのような複雑な検索条件では、構文解析が必須であろう。構文解析を行うなら、そのついでに式ツリーを生成するのはそれほど困難なことではない。式ツリーを生成する方法は、「.NET TIPS:LINQ文で動的にWhere句を組み立てるには?[3.5、C#、VB

    LINQ:複雑な検索をするために独自のWhereメソッドを作るには?[C#、VB]
  • Entity FrameworkとLINQで快適DBプログラミング

    .NET Framework 3.5から導入されたLINQ(Language INtegrated Query:統合言語クエリ)、活用していますか? ぱっと見の構文の目新しさに気を取られ、「また何か新しい文法を覚えなくてはいけないのか……」と敬遠しがちかもしれません。また、「シンプルな構文でクエリが書けるのは便利そうだけど、別にこれまでの方法で書いても問題無いのでは?」「なんだかパズルっぽい使い方ばかりで、実業務にどう活用できるのかイメージが湧かない」という意見もあるでしょう。LINQの持つポテンシャルは大変高く、特にデータベースとの連携においては非常に強力な仕方でコーディングをサポートしてくれます。連載では、データベースプログラミングにおいてLINQをどのように活用できるのか、解説していきます。 はじめに 連載では、データベース連携全体を扱うには紙面が足りませんので、主にデータベース

    Entity FrameworkとLINQで快適DBプログラミング
  • ラムダ式でステップアップ! C#のプログラムから汎用的なアルゴリズムを切り出すことで、LINQについての理解を深めよう

    1. はじめに プログラミング言語 C#では、C# 3.0から「ラムダ式」と呼ばれるものが使えるようになり、プログラムをより簡潔に記述できるようになりました。そして、それにより、LINQ(Language INtegrated Query:統合言語クエリ)という機能が便利に使えるようになりました。 この記事では、基に立ち返って、どのようにしてアルゴリズムを記述し、それを利用するかを考えたいと思います。 汎用的なアルゴリズムをどのように記述すると良いのか、そしてそのアルゴリズムがどのように使われると良いのか、を述べます。その中で、なぜラムダ式が便利なのか、その理由が分かってもらえれば幸いです。 また、ラムダ式がどのような仕組みなのか、それについても解説します。 LINQの仕組みや意義についても同時に理解していただけることと思います。 次の記事の姉妹記事です。そちらでC++用に書かれた記事を

    ラムダ式でステップアップ! C#のプログラムから汎用的なアルゴリズムを切り出すことで、LINQについての理解を深めよう
  • yield returnを表面的に理解 - nomurabbitのブログ

    <はじめに> LINQについて調べていると、ところどころに出てくる yield return hogehoge... この「yield」というのがいまいちピンとこない! そこでmsdnのドキュメントを眺めていると、いいのがありました! 反復子 (C# および Visual Basic) Yield または yield return ステートメントに到達すると、コードの現在の位置が保持されます。 実装はその位置から反復子関数が呼び出されるときに再起動されます。 うーん…文章を眺めていてもわかりづらいので、実際に書いてみることに。 <プログラム1> class Program { static void Main(string[] args) { foreach (int number in SomeNumbers()) { Console.Write(number.ToString() +

    yield returnを表面的に理解 - nomurabbitのブログ
  • LINQは本当に強力だ (6) TextFieldContext

    抽象的な話ばかり続いたので、今回は、実用的な例を示そう。 .NETCSVファイルを読み取るとき、まさか自分でパースしたりしていないと思うが、知っていると便利なクラスが「VB.NET」のライブラリに存在する。TextFieldParserクラスだ。VB向けの実装の割には、Streamからの読み取りに対応しているなど、割としっかり作ってある。 今回はこのクラスをLINQで「楽に」使えるようにする。 public static class TextField { // 指定されたCSVファイルへのコンテキストを生成する public static IEnumerable<string[]> Context( string path, string separator = ",", Encoding encoding = null) { using (Stream stream = new Fi

    LINQは本当に強力だ (6) TextFieldContext
  • LINQは本当に強力だ (1) データ加工の究極の道具

    長い間、.NET2.0から知識をアップグレードしていなかったのだが、先日一気に.NET4.0の知識を詰め込んだ。 LINQに触る必要性から、匿名デリゲート・ラムダ式・匿名クラス・式ツリー・拡張メソッドなどを覚えたのだが、はっきり言って今まで勉強を放置してきた事に、激しく後悔している。 「わず嫌い」だったのは、矢継ぎ早に追加される新しい構文に対する抵抗だったような気がする。C++のテンプレート拡張がもめたらしいのも、気持ちはよくわかる。 テンプレートもそうだが、LINQも言語思想の革命と言っても言い過ぎではないぐらいのインパクトがあった。 LINQの何が良いかと言えば、比類なき拡張性だろう。これを支えているのはIEnumerable<T>インターフェイスと、拡張メソッド構文なわけだが、LINQに触ったことが無い人向けに、興味が持てそうな事を書いてみる(但し無保証 🙂 まぁ、もう既に「枯れ

    LINQは本当に強力だ (1) データ加工の究極の道具
  • ASP.NET Dynamic Dataのカスタマイズのポイントを知ろう!

    はじめに Visual Studio 2008 Service Pack1(以下、VS2008 SP1)の追加機能の1つにASP.NET Dynamic Data Application(以下、Dynamic Data)があります。これは、データに対してLINQ to SQLとLINQ to Entitiesを利用し、データを動的に扱うアプリケーション構築を可能にします。 プロジェクトテンプレートにより、既定で「作成、読み取り、更新、削除」が用意されているマスタメンテのようなWeb UIを持つアプリケーションが構築できるのが特徴です。しかし、実際の現場でDynamic Dataを活用するには一歩手が届かない、物足りないという声も聞きます。大抵そのような話を伺うのは、登場したばかりのバージョン1での評価か、1番シンプルにできるアプリケーションを見ての評価だと思います。バージョン2とも言える、

    ASP.NET Dynamic Dataのカスタマイズのポイントを知ろう!
  • 簡単なデータ編集はお任せ! ASP.NET Dynamic Dataアプリケーション

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    簡単なデータ編集はお任せ! ASP.NET Dynamic Dataアプリケーション
  • SQLの動的組み立て(LINQ to 〜) - bxdxmx3

    LINQって便利なんだけど、 宣言型だから動的に検索条件変えるってのが難しい。 いくつか記事がでてるけど、正直わかんないのね。 有象無象チーム開発で使うの難しいんじゃないかなー? LINQを活用した簡単XMLデータベース・アプリケーション − @IT LINQ文で動的にWhere句を組み立てるには?[3.5、C#、VB] − @IT だったら文字列連結で直接クエリ書いちゃう方が簡単な気がしなくもない。 (直接の方が速いし・・・) でも、単純な条件のクエリにおいては良い方法があったのでメモしておく。 業務アプリだと画面で入力した場合は条件に加えて、未入力の場合は条件からはずすといった 単純なクエリが大部分を占めると思うので結構な範囲カバーできるんじゃないかな。 LINQ to SQLの場合 準備 NorthWindのCategoriesテーブルからDataContextを作成しておく コード

    SQLの動的組み立て(LINQ to 〜) - bxdxmx3
  • 1