C#
解説 C# におけるカスタムソートの方法を紹介します。 たとえば、文字列の長さを優先してソートする例は以下の通り。
解説 文字列を「やさしい→優しい」「いい→良い」のようなルールで置き換えることを考えてみましょう。1単語ずつ置き換えると、 「やさしいいいひと」→「優しいいいひと」→「優し良いいひと」→「優し良良いひと」 のように範囲が被ってしまい、うまくいきま…
作ったもの 日月火水木金土 → 0, 1, 2, 3, 4, 5, 6 に変換する関数です。 曜日を数値に変換する方法については、以下のようにいろいろ紹介しましたが、今回発明したものは、非常に動作が軽いです。 (C#)文字列で場合分けするときは、Dictionary を使うことが…
作ったもの Excel ファイルの読み書きには、NPOI というライブラリが便利です。ファイル入出力やセルのアクセスをできるだけ短く記述できるように、クラスを作成しました。
解説 今回は、先頭の数字を0で埋めてNケタの文字列にする方法を紹介します。 2ケタにする:1→01 8ケタにする:123→00000123
作ったもの Microsoft Word 2007 以降の docx ファイルは、中身が zip 圧縮された xml ファイルなので、ZipArchive で展開すれば編集することができます。 今回作ったのは docx の document 部分(文字で書かれている箇所)の xml を書き換えるクラスです。
作ったもの C#で処理速度を計測するためには、System.Diagnostics.Stopwatch を使います。ただ、これを毎回書くのは結構疲れてしまうので、簡単に計測できる関数を作りました。
解説 フォームアプリの Click イベントの中で、重い処理をしてはいけません。UI がフリーズしてしまいます。その時は、別のスレッドでバックグラウンド処理(非同期処理)を行います。 しかし、別スレッドから UI を操作してはいけません。例外が発生してし…
解説 文字列の内容によって、処理を変えたい場合があります。その場合は、 ① if...else...で条件分岐をする ② switch...case...で条件分岐をする ③ Dictionary で string からのマッピングを作る などの方法があります。 今回は、日月火水木金土の文字列を入…
解説 1月は31日まであり、2月は28,29日あり、3月は31日まであります。これは、 1 → 31 2 → 28か29 3 → 31 4 → 30 のような数字と数字のマッピングだという事ができます。 今回は、年と月→その月が何日まであるか、という関数を2つの方法で実装します。 ① 月…
作ったもの 例えば2019年2月は28日までありますが、2020年2月は29日まであります。今回はY年M月が何日まであるかを調べる関数を紹介します。
解説 C#7.0で、関数の中に関数を書く「インナー関数」がサポートされました。それ以前のバージョンでは、関数内に関数を書くためには、ラムダ式を使う必要があります。今回はラムダ式を使って関数内関数を書いてみます。
作ったもの アプリケーションの設定を簡単に読み書きするクラスを作りました。ウィンドウのサイズ、最後に開いたファイルなどを保存するのに使えます。
作ったもの ウィンドウの位置、最終起動時刻、最近使ったファイルなど、設定データを保存する際は、AppData\Local\[会社名]\[アプリケーション名] に保存するのが望ましいです。そのフォルダパスを取得するコードを紹介します。
作ったもの 日本語テキストファイルのエンコード方式には、以下のようなものがあります。 ①UTF-16(LE, BE) ②UTF-8 ③Shift-JIS ④EUC-JP これを自動的に判定して読み込む関数を作りました。