インフォテック開発者のつぶやき: 2012/08
展示会の準備中です。
2012/08/27
夏も終わりですね。
どんな夏を過ごされましたか。
さて、10月下旬にびわ湖ビジネスメッセに出展します。
現在その準備をしています。
去年より多くの方に来て頂けたら嬉しいです。お待ちしています。
どんな夏を過ごされましたか。
さて、10月下旬にびわ湖ビジネスメッセに出展します。
現在その準備をしています。
去年より多くの方に来て頂けたら嬉しいです。お待ちしています。
残暑と気候が不安定な時期が続いています。
2012/08/20
先週から雷や豪雨が続いています。
中には落雷によって、被害を受ける方もおられました。
豪雨で電車が止まっってしまったや、土砂災害に見舞われたなども聞きます。
暑さも依然厳しいです。
これらは地球の環境破壊にが原因なのでしょうか。
環境のためにまずは、身の回りのできることから始めましょう。
私は、小まめに電気を切るように心掛けています。
中には落雷によって、被害を受ける方もおられました。
豪雨で電車が止まっってしまったや、土砂災害に見舞われたなども聞きます。
暑さも依然厳しいです。
これらは地球の環境破壊にが原因なのでしょうか。
環境のためにまずは、身の回りのできることから始めましょう。
私は、小まめに電気を切るように心掛けています。
毎度の暑さの夏、そして、雷。
2012/08/15
今週の月曜日の夜から火曜日にかけて雷がなっていましたね。
PCを使用する仕事なので、雷が恐ろしくもあります。
特に何も対策していない自宅でのPC使用時などは怖いですね。
皆様は雷対策などしていますか?
自分はさすがに怖かったのでコンセントを抜いておきました。
PCが壊れるので出費もそうですが、
一番はデータがなくなる可能性があることが一番怖いですね。
まだまだ京都は暑いですね、どうか熱中症などにお気を付けください。
PCを使用する仕事なので、雷が恐ろしくもあります。
特に何も対策していない自宅でのPC使用時などは怖いですね。
皆様は雷対策などしていますか?
自分はさすがに怖かったのでコンセントを抜いておきました。
PCが壊れるので出費もそうですが、
一番はデータがなくなる可能性があることが一番怖いですね。
まだまだ京都は暑いですね、どうか熱中症などにお気を付けください。
C#の拡張メソッドがおもしろい。2
2012/08/06
中央値(メディアン)を計算する拡張メソッドを作成しました。
public static T Median<T>(this IList<T> items) {
//要素数チェック
if (items == null || items.Count <= 0) return default(T);
//ソート
List<T> sortedItems = new List<T>(items);
sortedItems.Sort();
//奇数、偶数による分岐
if (sortedItems.Count.IsOdd()) {
return sortedItems[sortedItems.Count / 2];
} else {
decimal item1 = Convert.ToDecimal(sortedItems[sortedItems.Count / 2 - 1]);
decimal item2 = Convert.ToDecimal(sortedItems[sortedItems.Count / 2]);
decimal center = (item1 + item2) / 2;
return (T)Convert.ChangeType(center, typeof(T));
}
}
要素数が奇数の場合は、そのまま中央値を返すので問題無いが、偶数の場合は、中央値2つの平均値を返したいので、一旦decimal型に変換して平均値を計算しています。
しかしこの実装ではdouble型の大きい値の場合にオーバーフローしたり、NaNに対応出来ません。
.netフレームワークのAverage拡張メソッドはどのような実装になっているのでしょう?
調べてみると、型ごとに拡張メソッドが用意されていました。なるほど。
public static T Median<T>
//要素数チェック
if (items == null || items.Count <= 0) return default(T);
//ソート
List<T>
sortedItems.Sort();
//奇数、偶数による分岐
if (sortedItems.Count.IsOdd()) {
return sortedItems[sortedItems.Count / 2];
} else {
decimal item1 = Convert.ToDecimal(sortedItems[sortedItems.Count / 2 - 1]);
decimal item2 = Convert.ToDecimal(sortedItems[sortedItems.Count / 2]);
decimal center = (item1 + item2) / 2;
return (T)Convert.ChangeType(center, typeof(T));
}
}
要素数が奇数の場合は、そのまま中央値を返すので問題無いが、偶数の場合は、中央値2つの平均値を返したいので、一旦decimal型に変換して平均値を計算しています。
しかしこの実装ではdouble型の大きい値の場合にオーバーフローしたり、NaNに対応出来ません。
.netフレームワークのAverage拡張メソッドはどのような実装になっているのでしょう?
調べてみると、型ごとに拡張メソッドが用意されていました。なるほど。

