日付の文字列変換は業務アプリケーションの開発では常に付きまといます。C# 6.0 で追加された補完文字列機能は、今まで C# をやってきたベテランほど習得しておくべき書き方だと思います。
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"); }
登録:
投稿 (Atom)