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

この図鑑の使い方
言語で絞る
C# / SQL / TypeScript / PowerShell / Bash でフィルタ。
▶ で実行
事前収録の出力を 1 行ずつ再生。 ぱっと結果が見える。
記事と接続
各 snippet は出典記事へのリンク付き。 文脈ごと読める。
絞り込み
snippet 一覧
151 件using System;namespace InterfaceExample { public class FreeHello : ISayHello { private string _helloItem;
▶ 実行可
自由にHelloというクラスを作ってみる
【C#】Interfaceの使いどころは配列ぶん回しのポリモーフィズムで理解出来る!#13efe9b65211
namespace InterfaceExample { class Program { static void Main(string[] args)
▶ 実行可
自由にHelloというクラスを作ってみる
【C#】Interfaceの使いどころは配列ぶん回しのポリモーフィズムで理解出来る!#12ac9226ce1e
namespace InterfaceExample { class Program { static void Main(string[] args)
▶ 実行可
ISayHelloのInterfaceを引数に取る関数を作ってみる
【C#】Interfaceの使いどころは配列ぶん回しのポリモーフィズムで理解出来る!#af07081ba3c2
var strs = new List<string>() { "山田", "鈴木", "小林",
▶ 実行可
普通にLinqを使う
C#でLinqを使って特定の条件に一致するものをカウントする。#a45a64bd8cc9
static void Case2() { var strs = new List<string>() { "山田",
▶ 実行可
Linqの中で関数を使う
C#でLinqを使って特定の条件に一致するものをカウントする。#5c3cab99527f
static void Case3() { var strs = new List<string>() { "山田",
▶ 実行可
Linqに直接関数を投げる
C#でLinqを使って特定の条件に一致するものをカウントする。#e71c6fab9d33
class Program { static void Main() { var names = new[] { "佐藤", "鈴木", "高橋" };
▶ 実行可
ハマり①: Select は foreach するまで実行されない(遅延評価)
C# LINQ Select の3パターン — 単純射影 / 匿名型整形 / インデックス付きの使い分け#b2e4130e3fde
class Dept { public string Name { get; set; } } class Emp { public string Name { get; set; } public Dept Dept { get; set; } } class Program {
▶ 実行可
ハマり②: 射影の途中で null を踏んで NullReferenceException
C# LINQ Select の3パターン — 単純射影 / 匿名型整形 / インデックス付きの使い分け#e34d11d16676
public class Customer { public int Id { get; set; } public string Name { get; set; } }
▶ 実行可
罠:参照型のリストでDistinctは動かない
C# でリストの重複を一意にする3つの書き方(Distinct / GroupBy / HashSet)#45edb7bbd5f0
var seen = new HashSet<int>(); foreach (var id in inputIds) { if (!seen.Add(id)) {
▶ 実行可
パターン3: HashSet<T> ──大量データ・重複検知に使う
C# でリストの重複を一意にする3つの書き方(Distinct / GroupBy / HashSet)#c988968a2a28
// ✅定石1:最小シリアライズ・デシリアライズ using Newtonsoft.Json; public class OrderDto {
▶ 実行可
定石1: NuGetでNewtonsoft.Jsonを入れる+最小コード
C# Newtonsoft.Json で業務系JSON処理を実戦投入する完全ガイド(.NET Framework 4.7.2 編)#ebd2150a39f0
class Program { static void Main(string[] args) { var user = new User(1,"鈴木","東京都墨田区");
▶ 実行可
プロパティを動的に検索して値を取得してみる
【C#】プロパティを動的に検索して値を取得したり変更する!#8c60479060d4
PropertyInfo[] props = typeof(User).GetProperties(); var propNames = props.Select(prop => prop.Name); Console.WriteLine(String.Join(",",propNames.ToArray())); Console.ReadLine();
▶ 実行可
簡単に解説
【C#】プロパティを動的に検索して値を取得したり変更する!#fde80ee13ca4
// ここでAddressのプロパティの情報を抜き出して var addressProp = props.FirstOrDefault(item => item.Name == nameof(User.Address)); // ここで上記プロパティ情報にインスタンスを投げてデータを取得してる。 Console.WriteLine(addressProp.GetValue(user));
▶ 実行可
簡単に解説
【C#】プロパティを動的に検索して値を取得したり変更する!#1b3dedb8c55c
var user = new User(1, "鈴木", "東京都墨田区"); PropertyInfo[] props = typeof(User).GetProperties(); // ここでAddressのプロパティの情報を抜き出して var addressProp = props.FirstOrDefault(item => item.Name == nameof(User.Address));
▶ 実行可
プロパティを動的に検索して値を変更してみる
【C#】プロパティを動的に検索して値を取得したり変更する!#91b9a817b639
class Program { static void Main(string[] args) { PropertyInfo[] props = typeof(Car).GetProperties();
▶ 実行可
PropertyInfoから型を取得する
【C#】プロパティを動的に検索して型の種類を取得する!#64159c77779d
using System.Text.RegularExpressions; public static class EmailValidator { // ✅業務系の現実版(簡易・ほぼ十分)
▶ 実行可
パターン1:メールアドレス検証—簡易版が現実解
C# 正規表現の業務系基本 — メール / 電話 / 郵便番号 / 全角半角の入力検証5パターン#8e620c411684
using System.Text.RegularExpressions; public static class PhoneValidator { // ✅国内電話番号(先頭0 +ハイフン任意)
▶ 実行可
パターン2:電話番号検証—国内+国際対応
C# 正規表現の業務系基本 — メール / 電話 / 郵便番号 / 全角半角の入力検証5パターン#f2eebc57a171
using System.Text.RegularExpressions; public static class PostalCodeValidator { // ✅郵便番号: 7桁+ハイフン任意
▶ 実行可
パターン3:郵便番号検証— 7桁ハイフン形式
C# 正規表現の業務系基本 — メール / 電話 / 郵便番号 / 全角半角の入力検証5パターン#da3fce3a8fab
using System.Text.RegularExpressions; public static class CharTypeValidator { // ✅全角文字(ASCII外)が含まれているか
▶ 実行可
パターン4:全角半角判定— Unicode範囲
C# 正規表現の業務系基本 — メール / 電話 / 郵便番号 / 全角半角の入力検証5パターン#50a671243a77
using System; using System.Text.RegularExpressions; public static class FormatValidator {
▶ 実行可
パターン5:数値・日付フォーマット検証
C# 正規表現の業務系基本 — メール / 電話 / 郵便番号 / 全角半角の入力検証5パターン#5f14a216eab8
using System.Diagnostics; using System.Text.RegularExpressions; public static class RegexPerformanceComparison {
▶ 実行可
パターン6: RegexOptions.Compiledでパフォーマンス改善
C# 正規表現の業務系基本 — メール / 電話 / 郵便番号 / 全角半角の入力検証5パターン#228fa557c142
// ✅パターン6: Stopwatchで性能比較(10万回ループ) const int N = 100_000; var data = Enumerable.Range(0, N).Select(i => $"row{i}").ToArray(); // +演算子(NGパターン)
▶ 実行可
性能比較— 10万回ループのStopwatch実測
C# 文字列結合のパフォーマンス完全比較(+ / Concat / StringBuilder / Format / 補間)#c95994787d0a
// これが本番で刺さるやつ foreach (var line in csvLines) { try { var amount = int.Parse(line[2]); // 空欄 / 全角数字 / カンマ入りで FormatException // 業務処理
▶ 実行可
なぜ Parse + try/catch が業務系で刺さるのか
C# TryParse の正解 — int.TryParse / DateTime.TryParse / Enum.TryParse で業務SE が踏む3つのハマり#bbe08af2f511
// 正解 foreach (var line in csvLines) { if (int.TryParse(line[2], out var amount)) { // 業務処理 } else {
▶ 実行可
なぜ Parse + try/catch が業務系で刺さるのか
C# TryParse の正解 — int.TryParse / DateTime.TryParse / Enum.TryParse で業務SE が踏む3つのハマり#2a821b7d5eed
string[] inputs = { "1234", "0", "-5", "", "abc", "123", "1,000", null! }; foreach (var s in inputs) { if (int.TryParse(s, out var value)) { Console.WriteLine($" '{s}' → OK ({value})");
▶ 実行可
パターン1: int.TryParse — 数値変換は bool 戻り値 + out var
C# TryParse の正解 — int.TryParse / DateTime.TryParse / Enum.TryParse で業務SE が踏む3つのハマり#acdf00b7b5e4
using System.Globalization; string[] inputs = { "2026/05/19", "2026-05-19", "2026/5/19", "05/19/2026" }; // NG パターン: DateTime.TryParse — ロケール依存
▶ 実行可
パターン2: DateTime.TryParseExact + InvariantCulture — ロケール事故をゼロに
C# TryParse の正解 — int.TryParse / DateTime.TryParse / Enum.TryParse で業務SE が踏む3つのハマり#c52514aef32b
public enum Status { Active = 1, Inactive = 2, Pending = 3 } string[] inputs = { "Active", "active", "Pending", "Unknown", "0", "99", "" }; // NG パターン: Enum.TryParse 単独 (数字文字列が定義外でも true になる)
▶ 実行可
パターン3: Enum.TryParse + IsDefined — 2段ガードで数字文字列の罠も封じる
C# TryParse の正解 — int.TryParse / DateTime.TryParse / Enum.TryParse で業務SE が踏む3つのハマり#b310074d2048
// 形① using ステートメント using (var reader = new StreamReader("data.txt")) { var line = reader.ReadLine(); Console.WriteLine(line);
▶ 実行可
そもそも using とは何をしているのか
C# using の3形態 — using ステートメント / using 宣言 / await using で業務SE が踏む使い分け#27097f842757
// 開発時はこれで動いた var customers = db.Customers.ToList(); foreach (var c in customers) { // 顧客ごとに c.Orders を見る ← ここで1ループに1 SQL 飛ぶ Console.WriteLine($"{c.Name}: 注文 {c.Orders.Count()} 件");
▶ 実行可
なぜ「LINQ 書いたら SQL が爆発する」のか
EF6 + LINQ で N+1 問題を踏まない3つの書き方#044de404ad21