2012年02月29日
Wordでルーラのつまみを無段階で動かしたい
Wordを使っていて不便に感じていたのは、段落などを設定できるルーラーで、
こまかな設定ができず、マウスでつまみを動かすと、カクカクした動きになって
しまうことでした。
文字単位でインデントを設定できるので、普段はこれで問題ないのですが、時々、
微調整をしたくなるときがあります。
先日、初めて知ったのですが、Alt キーを押しながらつまみを動かすと、スムースに動かせます。
いままでなんで気が付かなかったんだろう?
2012年02月26日
Interactive Extensions(Ix) - Distinctメソッド
EnumerableEx.Distinct拡張メソッドは、シーケンスの重複する値を削除するメソッドですが、
LINQ 標準のものと異なり、重複比較をするためのキーセレクター(デリゲート)を受けとります。
以下が、ためしに書いたコードです。
3の剰余をキーセレクターとしました。
これにより、余りが1 である 1 4 7 10... は同じ値とみなされます。
結果は、
と出力されます。
LINQ 標準のものと異なり、重複比較をするためのキーセレクター(デリゲート)を受けとります。
以下が、ためしに書いたコードです。
3の剰余をキーセレクターとしました。
これにより、余りが1 である 1 4 7 10... は同じ値とみなされます。
結果は、
と出力されます。
2012年02月22日
Interactive Extensions(Ix) - Catchメソッド
EnumerableEx.Catch拡張メソッドは、シーケンス列挙時に、例外が発生した場合に、
引数で指定した別のシーケンスを後に続けることができるというメソッドです。
以下のようなメソッドを書いてみました。
CreateNumsメソッドがシーケンスを列挙するのですが、
ある確率で、列挙途中で例外を発生するようにしています。
Catchメソッドだけだと、例外が処理済みと認識されないので、
例外を処理済みにするには、try-catchが必要みたいです。
結果は、例えば、以下のようになります。
引数で指定した別のシーケンスを後に続けることができるというメソッドです。
以下のようなメソッドを書いてみました。
CreateNumsメソッドがシーケンスを列挙するのですが、
ある確率で、列挙途中で例外を発生するようにしています。
Catchメソッドだけだと、例外が処理済みと認識されないので、
例外を処理済みにするには、try-catchが必要みたいです。
結果は、例えば、以下のようになります。
2012年02月19日
Interactive Extensions(Ix) - Concatメソッド
EnumerableEx.Concatメソッドは、複数のシーケンスを一つのシーケンスに連結するメソッドです。
標準のConcat メソッドは、
と宣言されており、2つのシーケンスの連結ですが、IxのConcatは、
と宣言されていて、拡張メソッドと、通常のstaticメソッドの2つが用意されています。
後者のメソッドを利用するコードを書いてみました。
実行すると、3つのシーケンスが連結され、以下のような結果が得られます。
標準のConcat メソッドは、
と宣言されており、2つのシーケンスの連結ですが、IxのConcatは、
と宣言されていて、拡張メソッドと、通常のstaticメソッドの2つが用意されています。
後者のメソッドを利用するコードを書いてみました。
実行すると、3つのシーケンスが連結され、以下のような結果が得られます。
2012年02月15日
素因数分解小町
WebサイトGushwell's C# Programming page に、「素因数分解した結果が小町になる数を求める」を掲載しました。
これは、ある整数 N を素因数分解したときに、因数が1-9をひとつずつ使っている Nを求める、
というものです。いくつかの制約を加えて、C#で解いています。
世の中に小町数マニアのような人がいるのかどうかわかりませんが、小町数に関するこの手の
数学パズル問題はいろいろあります。
このGushwell"s C# Programing Page のプログラム小品集でもこれまでに、この問題も含めて
7つ取り上げています。
こんな面白い小町数問題があるよ、という方がいれば、是非お教えください。
これは、ある整数 N を素因数分解したときに、因数が1-9をひとつずつ使っている Nを求める、
というものです。いくつかの制約を加えて、C#で解いています。
世の中に小町数マニアのような人がいるのかどうかわかりませんが、小町数に関するこの手の
数学パズル問題はいろいろあります。
このGushwell"s C# Programing Page のプログラム小品集でもこれまでに、この問題も含めて
7つ取り上げています。
こんな面白い小町数問題があるよ、という方がいれば、是非お教えください。
2012年02月12日
Interactive Extensions(Ix) - Bufferメソッド
EnumerableEx.Buffer拡張メソッドは、シーケンスを指定した個数単位で分割して列挙します。
言葉だけで説明するのは難しいですね。
以下のコードを見てください。
結果は、
と出力され、指定した6個単位で分割されているのが確認できます。
変数 buffersは、IEnumerable<IList<int>> 型となります。
言葉だけで説明するのは難しいですね。
以下のコードを見てください。
結果は、
と出力され、指定した6個単位で分割されているのが確認できます。
変数 buffersは、IEnumerable<IList<int>> 型となります。
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メソッドは多くの人が自作したと思われますが、これで自作メソッドを
使う必要もなくなりましたね。
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でデバッグの出力ウィンドウに、開始時刻、終了時刻と
かかった時間がミリ秒単位で出力されます。
以下、利用側のコード例です。usingで括ればOK。
これを実行すれば、Visual Studioでデバッグの出力ウィンドウに、開始時刻、終了時刻と
かかった時間がミリ秒単位で出力されます。



