動くコード図鑑
$ ls -1 /library | wc -l → 619
触って動く、検証済みの正解集。
公開記事から抽出した全コードブロックを 1 つずつページ化。 ▶ ボタンで 実行ログを再生し、 さも今動いてるかのように出力を流す。

この図鑑の使い方
言語で絞る
C# / SQL / TypeScript / PowerShell / Bash でフィルタ。
▶ で実行
事前収録の出力を 1 行ずつ再生。 ぱっと結果が見える。
記事と接続
各 snippet は出典記事へのリンク付き。 文脈ごと読める。
絞り込み
snippet 一覧
473 件using System; using System.Data; using System.Linq; var dt = new DataTable();
▶ 実行可
パターン③: GroupBy((row, i)=> i / pageSize)で全ページ一括分割
C# DataTable の大量行を Skip&Take でページングする3パターン — 1万行を1000件ずつ処理する設計#76f08f93fa36
// ✅定石1: DateTime.Kindの3パターン var local = DateTime.Now; // Kind=Local var utc = DateTime.UtcNow; // Kind=Utc var unsp = new DateTime(2026, 5, 8, 14, 30, 0); // Kind=Unspecified
▶ 実行可
定石1: DateTime.Kindの3つの罠(Local / Utc / Unspecified)
C# DateTime と DateTimeOffset の違い・タイムゾーン処理の正解(業務SE本番事故編)#05c39f91324d
// ✅定石2:サーバー処理はUtcNow、UI表示だけNow public class OrderLog { public Guid OrderId { get; set; } public DateTime CreatedAtUtc { get; set; } // ← UtcNowで記録
定石2: DateTime.NowとDateTime.UtcNowの使い分け
C# DateTime と DateTimeOffset の違い・タイムゾーン処理の正解(業務SE本番事故編)未収録#23a7f94f1fd9
// ✅定石3: DateTimeOffsetでタイムゾーン情報を持ち回る DateTimeOffset jstNow = DateTimeOffset.Now; // JST環境なら+09:00 DateTimeOffset utcNow = DateTimeOffset.UtcNow; // +00:00 Console.WriteLine($"JST: {jstNow:yyyy-MM-dd HH:mm:ss zzz}"); // 2026-05-08 14:30:00 +09:00
▶ 実行可
定石3: DateTimeOffsetを使うべき場面
C# DateTime と DateTimeOffset の違い・タイムゾーン処理の正解(業務SE本番事故編)#ec04c241b5a6
// ✅定石4: TimeZoneInfoで明示的タイムゾーン変換 var utcNow = DateTime.UtcNow; // JSTに変換(.NET Framework / Windows: "Tokyo Standard Time") TimeZoneInfo jstZone = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
▶ 実行可
定石4: TimeZoneInfo.ConvertTimeで明示的タイムゾーン変換
C# DateTime と DateTimeOffset の違い・タイムゾーン処理の正解(業務SE本番事故編)#0a3109479ee8
// ✅定石5-b: SQL Serverから読み出したDateTimeのKindはUnspecified using (var conn = new SqlConnection(connStr)) using (var cmd = new SqlCommand("SELECT created_at FROM order_log WHERE id = @id", conn)) { conn.Open();
▶ 実行可
定石5: SQL Server datetime vs datetime2 —業務系JOIN事故の温床
C# DateTime と DateTimeOffset の違い・タイムゾーン処理の正解(業務SE本番事故編)#b11995d138a9
// ✅定石6: JSONシリアライズでKindを死守する using Newtonsoft.Json; using Newtonsoft.Json.Converters; public class OrderEvent
定石6: JSONシリアライズでISO 8601統一
C# DateTime と DateTimeOffset の違い・タイムゾーン処理の正解(業務SE本番事故編)未収録#bd2c0847de10
static class DecimalExtension { public static int ToInt(this decimal dec) { return decimal.ToInt16(dec);
拡張メソッドにしてみた
【C#】Decimalからintに変換する拡張メソッドを作ってみた未収録#b905bd1eaf03
// => 1 Console.WriteLine(((decimal)1.1111).ToInt()); // => 1 Console.WriteLine(((decimal)1.9999).ToInt());
▶ 実行可
問題点は小数点以下の丸め方法
【C#】Decimalからintに変換する拡張メソッドを作ってみた#8fc8bb304e09
public enum ParseType { 四捨五入 = 1, 切り捨て, 切り上げ
Decimalの小数点以下の丸め方法をフレキシブルにできるようにした
【C#】Decimalからintに変換する拡張メソッドを作ってみた未収録#cc20e50580bd
static class DecimalExtension { public static int ToInt(this decimal dec, ParseType type = ParseType.四捨五入) { var roundedDec = default(Decimal);
Decimalの小数点以下の丸め方法をフレキシブルにできるようにした
【C#】Decimalからintに変換する拡張メソッドを作ってみた未収録#2d0a6dbedb96
// => 2 Console.WriteLine(((decimal)1.5).ToInt(ParseType.切り上げ)); // => 1 Console.WriteLine(((decimal)1.5).ToInt(ParseType.切り捨て));
▶ 実行可
Decimalの小数点以下の丸め方法をフレキシブルにできるようにした
【C#】Decimalからintに変換する拡張メソッドを作ってみた#e4a00beac695
// Dictionary なら自然に書ける var highScores = scores.Where(kv => kv.Value >= 90).ToList(); // HashTable だと… var highScores = scores.Cast<DictionaryEntry>() // ← まず Cast が必要
LINQ が使えるかどうかも判断軸 (HashTable は使えない)
C# Dictionary と HashTable の使い分け — 業務SEが型安全に書く3つの判断軸未収録#9612fbf51551
// int キー: HashTable では毎回 boxing → GetHashCode 呼び出し Hashtable ht = new Hashtable(); ht.Add(42, "answer"); var v1 = ht[42]; // 42 → object に boxing → GetHashCode → バケット検索
ハマり② int キーと string キーで Equals/GetHashCode 挙動が違う
C# Dictionary と HashTable の使い分け — 業務SEが型安全に書く3つの判断軸未収録#c23d4bac8db3
// 注文ID + 行番号 を複合キーにしたい例 public struct OrderLineKey { public int OrderId; public int LineNo;
カスタム型 (struct / class) をキーにする時の落とし穴
C# Dictionary と HashTable の使い分け — 業務SEが型安全に書く3つの判断軸未収録#fa8cecd1df36
public struct OrderLineKey : IEquatable<OrderLineKey> { public int OrderId; public int LineNo;
カスタム型 (struct / class) をキーにする時の落とし穴
C# Dictionary と HashTable の使い分け — 業務SEが型安全に書く3つの判断軸未収録#b7c4e6e892b5
// 設定キーをアルファベット順で反復したい場面 SortedDictionary<string, string> config = new SortedDictionary<string, string>(); config.Add("zebra", "ZZ"); config.Add("apple", "AA"); config.Add("mango", "MM");
▶ 実行可
SortedDictionary を選ぶ場面 (キー順序が必要な時)
C# Dictionary と HashTable の使い分け — 業務SEが型安全に書く3つの判断軸#60f75f238d6e
if (status == 1){ /* 販売中 */ } else if (status == 2){ /* 一時停止 */ } else if (status == 9){ /* 廃番 */ }
if (status == 1){ /* 販売中 */ }
C# Enum 完全ガイド — Description 属性 / [Flags] / 数値変換の使い分け5パターン未収録#e9dce50030d4
//商品ステータスのEnum public enum ProductStatus { Active = 1, //販売中 Suspended = 2, //一時停止
▶ 実行可
パターン1:基本宣言と数値変換
C# Enum 完全ガイド — Description 属性 / [Flags] / 数値変換の使い分け5パターン#4c6d50a09fcd
using System; using System.ComponentModel; using System.Reflection; public enum ProductStatus
▶ 実行可
パターン2: Description属性で画面表示
C# Enum 完全ガイド — Description 属性 / [Flags] / 数値変換の使い分け5パターン#b083bdc7c698
//キャッシュ版 public static class EnumDescriptionCache { private static readonly Dictionary<Enum, string> _cache = new Dictionary<Enum, string>();
パターン2: Description属性で画面表示
C# Enum 完全ガイド — Description 属性 / [Flags] / 数値変換の使い分け5パターン未収録#9ca736d259fd
using System; [Flags] public enum Permission {
▶ 実行可
パターン3: [Flags]属性でビット組合せ
C# Enum 完全ガイド — Description 属性 / [Flags] / 数値変換の使い分け5パターン#55cfcc401bc8
using System; using System.Linq; using System.Windows.Forms; public class StatusForm : Form
パターン4: GetValues / GetNamesでComboBoxバインド
C# Enum 完全ガイド — Description 属性 / [Flags] / 数値変換の使い分け5パターン未収録#d673233cfac5
using System; public enum ProductStatus { Active = 1,
▶ 実行可
パターン5: Parse / TryParse + IsDefinedでDB値検証
C# Enum 完全ガイド — Description 属性 / [Flags] / 数値変換の使い分け5パターン#89bad7c4a5ae
public static string GetStatusLabel(ProductStatus status) { switch (status) { case ProductStatus.Active:
switch文でのEnum網羅性— defaultの必須化
C# Enum 完全ガイド — Description 属性 / [Flags] / 数値変換の使い分け5パターン未収録#93e81cfac60f
// ✅定石1-a: try-catch —例外を捕まえて処理を続ける try { var dt = LoadFromDb(orderId); Render(dt);
▶ 実行可
定石1: try-catch / try-finally / usingの関係(usingは構文糖衣)
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け#c0aab089a37f
// ✅定石2:入れ子usingで複数IDisposableを扱う using (var conn = new SqlConnection(connStr)) using (var cmd = new SqlCommand("SELECT id, name FROM users WHERE status = @s", conn)) { conn.Open();
定石2:複数IDisposableは入れ子usingで書く
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け未収録#740c9638ff8a
// ✅定石3-a: Exceptionフィルタ(when句)でデッドロックだけリトライ try { ExecuteSql(); }
▶ 実行可
定石3: Exceptionフィルタ(when句)でcatch内if分岐を排除
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け#2abecfea594d
// ❌ NG: throw ex;はスタックトレースが「rethrowした行」でリセットされる public void OuterMethod() { try {
▶ 実行可
定石4: throw vs throw exのスタックトレース挙動
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け#08d0e82d4c16
// ❌ NG:例外を捕まえてログも吐かず処理を続ける try { SaveOrder(order); }
1. catch (Exception){ }で全握りつぶし
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け未収録#8c7dfdd9cccc