2012年02月10日
禁則文字?
とある所で、「ファイル名の禁則文字」というのを目にした。
気になってしかたがない。
「ファイル名に使用できない文字」とかにするべきです。
ちなみに、禁則文字とは、複数行にまたがる文章を書く際に、
行頭、行末には来ていけない文字のことで、
行頭禁則文字と、行末禁則文字があります。
2012年02月08日
Interactive Extensions(Ix) - ForEachメソッド
インタラクティブエクステンション(Interactive Extensions; Ix)は、
LINQ to Objectに拡張機能を供給するMicrosoftが提供しているライブラリです。
ここからダウンロードできます。
http://www.microsoft.com/download/en/details.aspx?id=27203
NuGetのIx_Experimental-Mainでも入手できます。
どんなものかなーと興味があったので、動かしてみました。
しばらくの間、このライブラリで遊んでみようと思います。
今日は、ForEachです。
これを使えば、いちいち ToList(), ToArray() を呼び出さなくても、ForEachメソッドが
使えます。
foreach 文を使わずにシーケンスに対する反復処理が書けるので楽ですね。
なお、上記コードは、以下のコードと同等です。
このForEachメソッドは多くの人が自作したと思われますが、これで自作メソッドを
使う必要もなくなりましたね。
2012年02月05日
手軽に時間計測したい
ちょっとした時間計測で利用できるクラスです。
以下、利用側のコード例です。usingで括ればOK。
これを実行すれば、Visual Studioでデバッグの出力ウィンドウに、開始時刻、終了時刻と
かかった時間がミリ秒単位で出力されます。
2012年01月22日
n回処理を繰り返したい (2)
前回「n回処理を繰り返したい (1)」の続きです。
こういった繰り返し処理の時には、何回目の処理かを知りたい場合があります。
そんな時のために、もう一つ拡張メソッドを用意しましょう。
こすれば、次のようなコードが可能になります。
参考に、for文使ったコードも示します。
2012年01月19日
n回処理を繰り返したい (1)
C#で、n回処理を繰り返したときには、for文を使うのが一般的です。
例えば、こんな感じ。
しかし、いちいちfor文を書くのも面倒です。
n回繰り返しをもっと直感的に書けるように書いた拡張メソッドです。
このようなクラスを定義してしまえば、
と書く事ができます。
また、次のような記述も可能となります。
nの値を表示すれば、10が表示されます。
2012年01月15日
書籍『今さら人に聞けないWord2010の常識』
森博之さん(Microsoft技術を中心とした、コンサルタント、開発支援、執筆、トレーニングを行っている)のご厚意で
献本いただいた本です。昨年秋にいただいたのですが、なかなか時間が取れず、ここで紹介できませんでした。
この本は、「Word 2010」の使い方を、初心者の方向けに、分かりやすく図解付きで解説している本です。

この本の良いところは、どのページから読みはじめても良い、というところでしょうか。
解説している内容はすべて「○○○するには?」というタイトルとなっており、やりたいことを目次で探して
そのページを開けば、すぐに目的の操作がわかるようになっています。
多くの項目は、1,2ページで説明されているのも良いですね。
私は、ほぼ毎日Wordを操作しているので、大抵の機能は知っているつもりでしたが、この本を読んで、
「おおっ、こんな機能があったんだ」「これは使ったことがなかったな」という発見がありましたので、
Wordは基本的な機能しか使ったことが無いという人にとっては、宝の山だと思います。
例えば、
「文字に読み仮名を(ルビ)を付けるには?」
「よく利用する書式設定をスタイルに記憶するには?」
「文章の途中で改行を挿入するには?」
「ページに透かし文字や背景を設定するには?」
「ファイル内の離れた場所を同時に表示するには?」
「図を任意の形状にトリミングするには?」
「葉書の宛名を作るには?」
「PDF形式で保存するには?」
「2つのファイルの差分を調べるには?」
など、あれっどうやるんだっけ?となる操作方法が簡単にわかるようになっています。
それと、最初の章に「ナビゲーション・ウィンドウ」の説明があったのには感心しました。
ある程度ページ数の多い文章を書くときには、この「ナビゲーション・ウィンドウ」がとても便利です。
2012年01月14日
メルマガ:C#プログラミングレッスン 読者数2100名
メールマガジン「C#プログラミングレッスン」の購読者数が 2100名となりました。\(^^)/
購読してくださっている方、どうもありがとうございます。
今年も頑張って発行していきたいと思います。
2012年01月12日
リストのすべての要素に対しラムダ式を適用する
リストをデリゲートが返す値で埋め尽くす では、リストをデリゲート(ラムダ式)の値で初期化する拡張メソッドを
示しましたが、今度は、既にリスト内にセットされている値に対し、ラムダ式を適用し、
新たな値をセットする拡張メソッドを示します。
この拡張メソッドを利用したコードです。
ここでは、各要素を1.05倍しています。
105 210 315 420
がリストの新たな要素となります。
この例では、ラムダ式の第1引数を利用していませんが、この i には、
その要素のインデックス番号がわたるので、そのインデックス値を使って、
要素の値に対し、処理をすることもできます。
ジェネリックなメソッドにしているので、リストの要素が文字列であってもOKです。
まったく、意味のないコードですが、以下にその例を示します。
リストには、順に
"SILVERLIGHT"
"INDOWS"
"OX"
"ROSOFT"
が格納されます。
2012年01月10日
リストをデリゲートが返す値で埋め尽くす
以前アップした「リストを指定した値で埋め尽くす」をちょっと工夫すれば、さらに汎用性の高い拡張メソッドが作れます。
こんな風に使います。
これで、0 2 4 6 8 10 12 14 16 18 と要素がセットされます。
2012年01月05日
Webページアクセス数Top20
アクセス数Top10 で、当ブログの1年間のアクセス数Top10を紹介しましたが、
今度は、Webページ「Gushwell's C# Programming Page」のアクセス数Top20を紹介します。
1位. メールマガジン『C#プログラミングレッスン』書庫
2位. C#デザインパターン - FactoryMethod
3.位 ヒルベルト曲線
4.位 凸多角形の完全グラフ(一筆書き)
5位. [パズル]小町算
6位. 1次元セルオートマトン (ルール30)
7位. C#デザインパターン - Command
8位. 書籍『C#プログラミング入門』サポートページ
9位. 階乗の計算(再帰処理)
10位. 簡易Tailコマンド
11位. シェルピンスキーのギャスケット (1次元セルオートマトン:ルール90)
12位. ドラゴン曲線
13位. 部分和問題を動的計画法で解く
14位. 円周率を10000桁まで求める
15位. 2次元ランダムウォーク
16位. 最小公倍数を求める
17位. 2次元配列の回転
18位. 素数の計算(エラトステネスのふるい)
19位. 最大公約数を求める (ユークリッドの互除法)
20位. 8クィーン・ゲーム
意外だったのは、「1次元セルオートマトン (ルール30)」のページが上位にあることですね。
学生さんが見てくれているのかな?
ちなみに、ワースト5は、以下の5つ。
1位. 2乗した数値が1-9で構成される数 (数学パズル)
2位. 小町リング
3位. 覆銭問題 (Penny Flipping Problem)
4位. 割り切れる4桁の逆転数 (数学パズル)
5位. リングナンバーの最大公約数
やはり、数学パズル系は、人気が今ひとつという感じです。
僕としては、この手の数学パズルは、プログラミングを学ぶ課題としてはちょうど良いと思っています。



