2013-01-01から1年間の記事一覧

スタートページ

Business はてブ/テクノロジー @IT/INSIDER.NET Hobby おたスケ PlayStation Plus SENオンラインストア

WPF

連載:WPF入門 - @IT Windows フォーム コントロールおよび同等の WPF コントロール - msdn

CheckedListBoxのチェック状態を簡単に取得・設定できるクラスを作成

using System.Linq.Expressions; using System.Windows.Forms; ... public class CheckedListBoxWrapper<T, Tvm, Tdm> { CheckedListBox c; Func<T, Tvm> vmSelector; Func<T, Tdm> dmSelector; // コンストラクタ public CheckedListBoxWrapper(CheckedListBox c) { this.c = c; } // デ</t,></t,></t,>…

あんまり好きじゃない言葉(仕事)

あんまり好きじゃない言葉 付加価値 - 誤解を生みやすい言葉。複雑怪奇なシステムを作る原因の一つだと思う。 自働化 - 解ってる人は自動化という言葉を使っていても出来てるし、解ってない人は自働化という言葉を使っていても出来てない。 MODAPTS - 人が幸…

memo

Open XML SDK■XLSX ClosedXML NPOI 2.0 EPPlus (LGPL) Koograhttp://iwa4.hatenablog.com/entry/2012/08/01/102806■DOCX WorddocGenerator■PPTX http://msdn.microsoft.com/ja-jp/library/office/gg278317.aspx

パターン

Tester-Doerパターン 例外の発生しうるメソッド本体(Doer: do するもの)に対して、 事前チェック用のテストメソッド(Tester)を用意する。 http://ufcpp.net/study/csharp/misc_exception.html#tester TryParseパターン 「戻り値でエラーを返さない」とい…

IDisposableインターフェースを実装したクラスを作るときに気を付けること。

C#

IDisposableインターフェースを実装したクラスは、usingステートメントを使って確実な終了処理が出来ないといけない。usingステートメントは以下のように書き using (var db = new SqlConnection(connectionString)) { db.Open(); } usingステートメントを使…

グループ化して上位N件ずつ取得

似たような事を既に書いてるけど、懲りずに。■やりたいこと: テーブル(コレクション)TからGでグルーピングしてOで並べ替えて、グループ毎の上位N件ずつだけ取得。T-SQLだとこんな感じか。 SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY G ORD…

集合論とかの演算をC#(LINQ)でどう書くか考えてみた。

とりあえず 数学記号の表 - Wikipedia に載ってる項目について。■論理演算・量化 論理積 P ∧ Q P && Q 論理和 P ∨ Q P || Q 否定 ¬P !P 全称量化 ∀x ∈ S; P(x) S.All(x => P(x)) 存在量化 ∃ x ∈ S; P(x) S.Any(x => P(x)) 存在量化 ∃x(x ∈ S) S.Any() ■集合…

デザインパターン

C#

デザインパターン勉強しないとなぁ。■@IT - 連載:[完全版]究極のC#プログラミング C#3.0 デザインパターン ミニカタログ http://www.atmarkit.co.jp/fdotnet/extremecs/extremecs_20/extremecs_20_02.html■@IT - .NETで始めるデザインパターン http://www…

グループ化してセット演算子を適用する。 4

さらに再考。 ILookupに変換する部分を抽出。これでもうすこし使い勝手が良くなる。■グループ化セット演算 public static class GroupLinqExtensions { // groupのシーケンスをlookupに変換 public static ILookup<TKey, T> GroupToLookup<T, TKey>(this IEnumerable<IGrouping<TKey, T>> source) </igrouping<tkey,></t,></tkey,>…

グループ化してセット演算子を適用する。 3

さらに再考。 メソッドチェーンを繋げていくことを考えると、IEnumerable<IGrouping> を受け取って IEnumerable<IGrouping> を返すのが良い。■グループ化セット演算 public static class LinqExtensions { // グループ化したキーで重複除去 public stati…

グループ化してセット演算子を適用する。 2

再考。さっきよりは良い感じ。 Distinct は IEnumerable<IGrouping> を受け取って、他のセット演算は IEnumerable<IGrouping> を返すのがポイント。■グループ化セット演算 public static class LinqExtensions { // グループ化したキーで重複除去 (sourc…

グループ化してセット演算子を適用する。

要素の同一性を利用するのはDistinctだけじゃなくてセット演算子全部なので、グループ化してセット演算しやすくするクラスを作ってみたけどなんか複雑になっちゃった。■グループ化クラス public class GroupUniverse<T, TKey> { Func<T, TKey> keySelector; GroupSet set; publ</t,></t,>…

欲しかったのはDistinctじゃなくてOverだった。

単純な自作クラスだとpublic propertyが全部一致したら同一と見なすみたいな動作ではないのでDistinctでの重複要素の除外ができない。 これが結構厄介で、Tupleや匿名クラスに入れ替えたりしたけどなんかめんどくさいし、Distinctの拡張も考えてみたけどなん…

メモ

void tbInput_KeyDown(sender, e) { if (e.KeyCode = Keys.Enter) { try { CurrentItem.Run(tbInput.Text.Trim()); IncrementCurrentItem(); CurrentItem.Ready(); } catch (CheckException ex) { lbErrorMessage.Text = ex.Message; currentItemIndex = 0; …

ICONIA TAB A500 に Android 4.1.2 導入完了 簡易ログ

↓を参考にした。 http://monkiti-jp.blogspot.jp/2012/05/iconia-tab-a500rom.html http://monkiti-jp.blogspot.jp/2012/10/iconia-tab-a500.html ※ダウンロードのために、Forumにユーザー登録してログインする必要がある。■ログ 1) 最初に ・久々に A500 を…