You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
もはや空気のようになったLINQですが、いまだに活用されていない現場を見ることもあり、非常に残念に思います。 そこで、本エントリではいわゆる「キーブレイク処理」をLINQで置き換え、性能にほとんど差がないことを示し、LINQ導入の一助としたいと思います。 テーマ 取引先と商品ごとに単価と数量を持つ売上データを、明細、小計(商品ごと)、大計(取引先ごと)、総計を出すプログラムを考えます。 元データはこんな感じで生成します。 This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode ch
この記事は C# Advent Calendar 2014 の 6 日目の記事です。LINQPad の基礎的な機能について解説します。 LINQPad をご存知の方はもしかしたら多いのかもしれず、あるいは少ないのかもしれませんが、このツール、LINQPad という名前ではありますが LINQ とはあまり関係ありません。名前で結構損をしてるのではないかと常々思ってしまうので、ちょっと残念な感じではあります。 もちろん LINQ のお勉強にも便利なのは間違いないのですが、お手軽な C# / F# / VB コードの実行環境として、また、.NET オブジェクトを見やすく出力することのできるツールとして、十分に便利なツールです。Visual Studio の C# Interactive もしばらく出てこなさそうですし、ちょっとしたコード パッドとしてだけでも十分有用ではないかと思います。 ですが
Instantly test any C#/F#/VB snippet or program Query databases in LINQ (or SQL) — SQL/Azure, Oracle, SQLite, Postgres & MySQL Enjoy rich output formatting, autocompletion with AI and integrated debugging Script and automate in your favorite .NET language, with all the benefits of a REPL Interoperate with BenchmarkDotNet, xUnit, Rx, MSAL, Excel and more Super lightweight — small and fast, with xcop
先週から話題のこちらのプログラミング課題 新人女子プログラマの書いたコードを直すだけの簡単なお仕事です!|paizaオンラインハッカソンVol.1 アプローチの仕方はいろいろあると思うのですが、新宿Scala座主宰のid:numanuma08氏は「Scalaだったらリストからすべての組み合わせを生成するのもcombinationsメソッドで一発だよ」といつも通りScala全力押しです*1。 ところがその紹介の最後で C#もLinqとか使えばいけそうな気がします。 #新宿Scala座 で新入女子社員を救ってきた 今煽られました。 完全に煽られました。 LINQとやらで組み合わせ列挙書いてみろよほら張り子の虎とか笑わないからさと煽られました。 書いてやろーじゃねーの。 課題の整理 次のようなリスト {2, 3, 5, 7} から2つ組をと指定されたら { {2, 3}, {2, 5}, {2,
概要 Ver. 3.0 「LINQ」で、 構文の追加(クエリ式): C# 3.0 で、SQL 風の問い合わせ構文が書けるようになった。 メソッド群の追加(標準クエリ演算子): クエリ式は、Where、Select などのメソッド呼び出しに変換される。(これらのメソッドを標準クエリ演算子と呼ぶ。) という話をしました。 ここでは、 どういう C# クエリ式がどういう標準クエリ演算子(メソッド呼び出し)に変換されるかを説明しつつ、 クエリ式に関係する標準クエリ演算子を紹介します。 (ちなみに、標準クエリ演算子の中には、クエリ式で表せない (メソッド呼び出しの形でしか使えない)ものも多数あります。 次節の「標準クエリ演算子(その他)」で説明。) サンプルデータ 次節以降の説明では、例として以下のようなデータを使います。 var a = new[] { new { X = 0, Y = 10, Z
Unity3Dの公式マニュアル翻訳やってる人がiPhone, Androidでのゲームアプリ開発について記事にしています。Unity3Dでの開発をメインにAsset Storeで入手できるNGUI, Playmakerや, Oculus Riftなど作者サイトからの英語情報を翻訳していきます 最近、アセットストアでダウンロードしたコードに たまたま、LINQ を活用しているものがあって興味をもった。 そして「なるほどLINQ で書くと美しく見やすいコードを書ける場合があるのだ!」と素直に感じた。 調べてみたら、一般論としてUnity でどのような場合に活用すると良いか、Unity Gems に良い記事があったので2 回の投稿に分けて翻訳を紹介させてもらいたい。 長文ゴメン!!でもLINQをUnityでどう活用するか知らなかった人は覚えとくと、きっと役立つぜ! http://unitygem
こちらは、iBeacon Advent Calendar 2013 と Xamarin Advent Calendar 2013 とのクロスポストになります。 Xamarin とは、.NET で iOS/Android アプリを開発できるプラットフォームです。詳しくは こちら をどうぞ。 Xamarin.iOS は、 iOS の APIセットが全て C# で使えますので、 iBeacon 関連の API もそのまま使えます。さらに C# や .NET の強力な言語仕様により、より簡潔に、美しく書くことができます。 Xamarin.iOS で iBeacon を使うサンプル Xamarin で iBeacons を使うサンプルは、Xamarin 自体が既に公開しています。 Play ‘Find The Monkey’ with iOS 7 iBeacons | Xamarin Blog mi
匿名形とかクラス内の複数のプロパティで何かやりたいって場合は、メソッド式は避けた方がいいんだろうか。 「IEqualityComparer」クラスの書き方が悪い可能性は大いにありえるけども、「IEqualityComparer」をわざわざ作らないといけないのは面倒。 データ数が少ない場合は、DataRow.ToTable の方がわずかに早いけど、行数が多くなるとLinq のクエリ式の方が早くなる。また、コードの可読性もLinq のクエリ式の方が良い。 Linq のGroupBy だと他にもグループの件数やら最大値・最小値なんかも持ってこれるみたいだし、Linq はできる子みたい。 Distinct とGroupBy の使い分けは、可読性も良いしDistinct で足りる時はDistinct で良いと思う。 注意点としては、Linq のクエリ式の特徴でクエリを宣言したときではなく、
追記:このエントリーが当ブログで一番アクセスが多いです。DataSetはまだかなり使われてるんですね。。。 追記終わり。 感動したんでポストしときます。 Entity Frameworkが登場したり、Silverlightじゃサポートされなかったりと、昨今はめっきり印象が薄いDataSetやDataTableですが、.NET Framework 1.1/2.0 アプリだとバリバリ使われまくってると思います。そんなアプリを.NET 3.5 に移行後、「よーしLinqつかっちゃうぞ!」と思って、いざDataTable.Rows. まで打ってインテリセンスを表示させてみると、いつもの拡張メソッドが出てきません。このガッカリ感はハンパない。DataRowCollectionはIEnumerableを実装してないんですねぇ。 とガッカリしていたのが半年ほど前でそのまま放置してたんですけど、最近見つけ
問題 美しいプログラムを書く(脱添字職人編) では添字が多用され読み難くなっているソースコードのリファクタリングを通して 美しいプログラムを書くためのポイントをいくつか紹介しました。 そこでは 「何をするか」を基準にプログラムを書きましょう。 「どうやるか」が前面に出たプログラムは意図を把握し難くなります。添字や明示的なループの使用は避けましょう。「どうやるか」が前面に出てきてしまいます。 今時のプログラミング言語ならば便利な構文やライブラリ関数があるので、 添字やループを使わずとも「何をするか」を基準にプログラムが書き易くなっています。 ということを述べました。 確かにごもっともな主張ではありますが、経験値の少ない人からすれば 「そんなことを言われてもどんなライブラリ関数があってどういう場面で使えるのかリファレンスを読んでもよく分からないし……」 ということはよくあります。 という訳で、
例 次のコード例では、 を使用 All<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) して、シーケンス内のすべての要素が条件を満たしているかどうかを判断する方法を示します。 class Pet { public string Name { get; set; } public int Age { get; set; } } public static void AllEx1() { // Create an array of Pets. Pet[] pets = { new Pet { Name="Barley", Age=10 }, new Pet { Name="Boots", Age=4 }, new Pet { Name="Whiskers", Age=6 } }; // Determine whe
join句のグループ化結合 前回の最後に述べたとおり、クエリ式には複数のソースを関連付けるjoin句がある。そして、join句には前回紹介した「内部結合」のほかに、「グループ化結合」と「左外部結合」が存在する。今回はこの2つを見ていこう。 前回の内部結合は、2つのソースに一致する値を見いだした時点で、続きのクエリを発動できた。例えば、「ID番号と商品名を持つソース」と、「ID番号と価格を持つソース」を使い、ID番号で内部結合を行えば、商品名とそれに対応する価格を結び付けることができた。 しかし、この機能は場合によっては十分ではない。同じ商品を異なる店舗で別の価格で販売している場合、商品名に対する価格は複数になってしまう。さらに、価格ごとに「どの店での値段か」という情報も添えねばならない。 このようなケースでは、「内部結合」ではなく「グループ化結合」を使用するとよい。グループ化結合は、joi
This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Don Box, Anders Hejlsberg February 2007 Applies to: Visual Studio Code Name "Orcas" .Net Framework 3.5 Summary: General-purpose query facilities added to the .NET Framework apply to all sources of information, not just relational or XML data. This facili
よく、このようなことを書いてあるんだけど、よっぽど当たり前のことなのか、 具体的なやり方が書いていないので一応書いてみる。 以前投稿した記事のLINQクエリを、独自の型で返すように書き換えてみる 。 ・以前の記事のクエリ式(を、より簡単に省略したもの。。) Using context As New userEDM Dim query = From a In context.user _ Select New With { a.id, a.name} Dim result = query.FirstOrDefault() Console.WriteLine(result.name) End Using Class anonType Public id As String Public name As String End Class Using context As New userEDM
このエントリはJavaScript Advent Calendar 2010 : ATNDの20日目として書きます。一つ前はsecondlifeさんのコマンドラインから JavaScript のシンタックスチェックを行う方法 - って、なんでですか〜 - subtechでした。 普段はC#でもしゃもしゃしている、@neuecc(twitter)といいます。そんなわけで今回はC#畑からのJavaScriptライブラリを二つほど紹介します。 ここではC#の中でも、LINQ: .NET 統合言語クエリという機能から来ているlinq.jsとRxJSを紹介します。linq.jsはコレクション操作を、RxJSはイベント操作と非同期操作に関するライブラリとなっています。どちらもwindowオブジェクトには一切触らない、DOMやXmlHttpRequestとは全く無関係の中立で地味な、phpspotで紹介
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く