投稿

3月, 2016の投稿を表示しています

C#6.0の補完文字列機能で日付を年月日に変換する

イメージ
日付の文字列変換は業務アプリケーションの開発では常に付きまといます。C# 6.0 で追加された補完文字列機能は、今まで C# をやってきたベテランほど習得しておくべき書き方だと思います。

正規表現で半角英語と数字を分離して抽出する

イメージ
英数が混在したコードを分離したい場合は、正規表現が便利です。

インデックス0ベースは0以上で引数リストのサイズよりも小さくなければなりません

イメージ
C#で文字列を扱う際に多用するエラーです。String.Format は 0 からスタートします。

C#の正規表現でbrタグを削除する

イメージ
正規表現を使ったReplace <br /> も <br> も置換します。 string s = "あいうえお<br />かきくけこ<br>"; Regex r = new Regex("<br.*?>"); // あいうえおかきくけこ string output = r.Replace(s, "");

Hashtableで落ちる。項目は既に追加されています。辞書のキー 追加されるキー

イメージ
新規に使うことはないでしょうが、Hashtable は、既にあるキーを Add 使用とすると落ちます。 Hashtable ht = new Hashtable(); ht.Add("key", "hoge"); ht.Add("key", "hoge"); でも、書き方を変えると上書きします。 Hashtable ht = new Hashtable(); ht.Add("key", "hoge"); ht["key"] = "hoge2"; 古いコードを触る場合は、覚えておくといいかもしれませんね。

SQL Server の GETDATE() で日付のみ取り出す

イメージ
GETDATE関数で取得した日付には時刻も含まれます。検索条件に使う場合などは時刻が邪魔をする場合があるので、以下の方法で日付だけを取り出します。 -- SQL Server 2008 以降はこれでいけます。 SELECT CONVERT(date,GETDATE()) -- 古いバージョンだとやや長くなります。 SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))

c#のKeyValuePairでnullチェック

イメージ
FirstOrDefault() で条件に合う値が取得できなかったことをチェックする場合、KeyValuePair では少し書き方を変える必要があります。== null と書きたくなりますが、default で規定値かどうかのチェックを行います。 C# の規定値(default)によるチェック 注意点としては、Equals は内部的に型変換をしてしまうため、default の型を合わせておかないと、思った通りの結果にならないことがあります。 var kvp = new List<KeyValuePair<int, string>>() { new KeyValuePair<int, string>(1, "hoge"), }; var result = kvp.FirstOrDefault(x => x.Value == "ほげ"); if (result.Equals(default(KeyValuePair<int, string>))) { Console.WriteLine("null"); } // この書き方だと、チェックをすり抜けてしまうので注意。 if (result.Equals(default(KeyValuePair<string, string>))) { Console.WriteLine("null"); }