normalian blog

Let's talk about Microsoft Azure, ASP.NET and Java!

Entries from 2009-07-01 to 1 month

ラムダ式での上位スコープの保存

ちょっと下記で書いてる「究極のC#プログラミング」本で、ラムダ式の上位スコープ保存っぷりを書いてあったので写経。 class Program { public static void Main(string[] args) { Console.WriteLine("-------- 上位スコープ保存1 ------------"); IList<Action> li</action>…

C#でmap、filter、reduce

「Googleを支える技術」で?一躍有名になった感がするmap、filter、reduceですが、LINQ(C#)で対応させると以下になるんでしょか? 一般? LINQ(C#) map Select filter Where reduce Aggregate せっかくneueccさんがAggregateの良いサンプルを書いてくださっ…

GroupBy、OrderByを使ってみる

DTOリストの中から年齢最少の幼女を抜き出すサンプル。 ちょっと走り書きしてみた。 using System; using System.Collections.Generic; using System.Linq; using System.Text; class Program { static void Main(string[] args) { IList<SmpDto> list = new List<SmpDto>(ne</smpdto></smpdto>…

Zipを使ってみる

AsParallelと同じく、.NET4.0betaからの回し者Zipを使ってみた罠。 Haskellとかを使ったことのある人なら、メソッド名でイメージがつくんじゃないかと。では、コード例。 class Program { static void Main(string[] args) { var range1 = Enumerable.Range(…

AsParallelを使ってみる

せっかく.NET4.0 betaが入っているので、ついついAsParallelを使ってみるわな。 どうやら、LINQインターフェースに対して、AsParallel()を実行すると並列実行型のインターフェースにバインドされるらしい。 まずはサンプルコード using System; using System…

ToLookupを使ってみる

普段使っておきながら、結構使いどころを忘れるToLookupメソッドなどを書いてみる。以下がサンプルコード&実行結果。 public static void Main(string[] args) { List<int> intList = Enumerable.Range(1, 6).Concat(Enumerable.Range(1, 4)).ToList(); List<string> str</string></int>…

INETA Day 2009 に参加してきたメモ

INETA Day 2009に参加してきましたので簡単にメモをばを公開。さすがにこれ以上延ばすと時事ネタじゃなくなってしまいそうなので、不完全だろうが何だろうが公開。 実はINETA Day 2008が初めて行ったに等しい勉強会だったりしたので、1年越しに思う事がいろ…

VSTOとか XML-RPCとか

C#

.NETでTracのクライアントを作っている人がいるらしい。要素技術として掲題の物があるので簡単にリンクだけ張ってみる。 XML-RPC.NETXML-RPC.NET http://www.xml-rpc.net/ Visual Studio Tools for Office 製品情報 http://www.microsoft.com/japan/msdn/vst…

C#でシャッフルしてみる

C#

「C#でリストをシャッフルする方法について」の議論をちょこちょこ聞いたので、ためしにシャッフルなクラスを作ってみた。 けど・・・、うーん・・・、いろいろ微妙な気がする。まずは書いたコード片を載せてみるテスト。 一応、Genericsを使ってるけど微妙…

 ASP.NET MVCでQuill 〜その2〜

id:waritohutsu:20090601:1243835418でASP.NET MVCでQuillを使用する方法を書いたんですが、問題点がありました。実は初回リクエスト時にはインターフェースにクラスがインジェクションされるのですが、2回目のアクセスではインジェクションが失敗して、イン…

文字列情報だけでインスタンス生成&メソッド実行

C#

最近流行の型付言語のFW*1では、ほぼ間違いなくリフレクションを使っているのでちょっと復習。文字列情報だけでロード済みアセンブリ内のオブジェクトについて「インスタンスの生成」と「インスタンスメソッドの生成」を実行する。コード例は以下。 string f…

ラムダ式

ラムダ式はローカルスコープの変数値を保存していると聞いたので試してみた。コード例は以下。 public class LambdaFactory { private static int x = 0; static public Func<int> Create() { //あえてここでローカル変数に代入 int y = ++x; return () => y; } }</int>…

ループの回し方

C#でループをまわすと言うと、以下の二パターン位がぱっと思いつく手法? for(i=0; i foreach( var val in collection ) でくるくる? 最近、別の解法もある事を知ったので簡単にメモ。何を使うかというと、System.Arrayクラスを使う方法で、具体的な使用例…

ASP.NET MVCにおけるFilterの作成方法と実行順序制御

フィルタって? ASP.NET MVCでは、「System.Web.Mvc.Controllerクラスを継承した自作コントローラークラス」がロジックの中核を担います。以下の例はデフォルト生成されたコントロールクラスです。 public class HomeController : Controller { public Actio…