投稿

10月, 2014の投稿を表示しています

[C#] ラムダ式での IN 句

ラムダ式で SQL の WHERE IN のようなことをするためには、検索の元となる値を配列にしてしまい、Contains を使用する。 そもそもデータを取得する時点で絞り込んでおくべきではあるが、こんな書き方もできるというメモ。 // 今さら DataTable ではあるが、使用されているケースは多い…はず? var dt = new DataTable(); dt.Columns.Add("Class", typeof(int)); dt.Columns.Add("Name", typeof(string)); for (var i = 0; i <= 10; i++) { var dr = dt.NewRow(); dr["Class"] = i; dr["Name"] = "Hoge " + i.ToString() + " 世"; dt.Rows.Add(dr); } for (var i = 11; i <= 20; i++) { var dr = dt.NewRow(); dr["Class"] = i; dr["Name"] = "Gege " + i.ToString() + " 世"; dt.Rows.Add(dr); } // 設定ファイルなどに記載された CSV を仮定。Class が 1 もしくは 3 であるレコードを取得する。 var settings = "1,3"; // string[] に分割後、List に変換。数値型にする。 var list = settings.Split(',').ToList().ConvertAll(x => int.Parse(x)); var ret = dt.AsEnumerable().Where(x => list.Contains((int)x["Class"])); foreach(var x in ret) { // 出力

[C#] 文字列の分割時に空白を無視

Split メソッドは色々と便利な使い方ができるが、何も指定しないと分割時に空白も含まれてしまう。これをオプション指定して空白を無視するには、若干書き方が変わってくる。 var s1 = "abc,def,,ghi,"; var s2 = s1.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); // s2[0] = "abc" // s2[1] = "def" // s2[2] = "ghi" StringSplitOptions 列挙体 http://msdn.microsoft.com/ja-jp/library/system.stringsplitoptions(v=vs.110).aspx

[Google Chrome] 指定したサイトを常にシークレットモードで開く

イメージ
Incognito-Filter は、指定したサイト(アドレス)を開く際に自動的にシークレットモードで立ち上げてくれる拡張機能である。アドレスの指定は正規表現も使用できるので柔軟な設定が可能。 Incognito-Filter https://chrome.google.com/webstore/detail/incognito-filter/cifilbmpnkjinlkchohdfcpdkmpngiik

[ASP.NET] テキストボックスにウォーターマークを表示させる

イメージ
テキストボックスに対して、入力して欲しい値を予め薄く表示するウォーターマーク。実装方法は様々あるが、HTML5 対応ブラウザが対象であれば、以下のように placeholder タグを追加するだけで驚くほど簡単に実装できる。 なまえ:<asp:textbox id="TextBox1" placeholder="姓" runat="server"></asp:textbox> <asp:textbox id="TextBox2" placeholder="名" runat="server"></asp:textbox>