C# Tips

スポンサーリンク
C#

C# Tips | 文字列操作:英数字だけ抽出する

C#で文字列から英数字だけを抽出する基本C#で文字列から英数字だけを抽出したい場面は、業務システムではとてもよくあります。たとえば、会員IDや社員番号の入力から記号や空白を除きたいとき、商品コードを比...
C#

C# Tips | 文字列操作:全角文字に変換する

C#で文字列から数字だけを抽出する基本C#で文字列から数字だけを抽出したい場面は、業務システムではとてもよくあります。たとえば、電話番号からハイフンを除いて数字だけにしたいとき、郵便番号入力から余計な...
C#

C# Tips | 文字列操作:全角文字に変換する

C#で文字列を全角文字に変換する基本C#で文字列を全角文字に変換したい場面は、業務システムでは意外と多くあります。たとえば、帳票出力で見た目をそろえたいとき、外部システムの入力仕様で全角が求められると...
C#

C# Tips | 文字列操作:半角文字に変換する

C#で文字列を半角文字に変換する基本C#で文字列を半角文字に変換したい場面は、業務システムでは非常によくあります。たとえば、ユーザー入力の表記ゆれを減らしたいとき、検索しやすくしたいとき、CSVや固定...
C#

C# Tips | 文字列操作:小文字に変換する

C#で文字列を小文字に変換する基本C#で文字列を小文字に変換したいときは、まず「文字列はあとから中身を書き換えるのではなく、変換した結果を新しく受け取る」という考え方を理解することが大切です。初心者の...
C#

C# Tips | 文字列操作:大文字に変換する

C#で文字列を大文字に変換する方法|ToUpper・ToUpperInvariantの使い方と実務での注意点C#で文字列を操作する場面では、英字を大文字に変換したいことがあります。例えば、入力された文...
C#

C# Tips | 文字列操作:複数文字列を一括置換する

C#で複数文字列を一括置換する方法C#で文字列を扱っていると、ひとつの文字列だけでなく、複数の文字列をまとめて置き換えたい場面があります。たとえば、文章に含まれる古い商品名や表記ゆれをまとめて修正した...
C#

C# Tips | 文字列操作:指定文字列を置換する

C#で指定文字列を置換する方法C#で文字列を扱っていると、特定の文字や単語を別の文字列に置き換えたい場面がよくあります。たとえば、文章に含まれる古い商品名を新しい商品名に変更したり、ファイルパスの区切...
C#

C# Tips | 文字列操作:末尾を「…」で省略する

末尾を「...」で省略する方法C#で長い文字列を扱っているとき、文字列の末尾を「...」に置き換えて、指定した文字数に収めたい場面があります。たとえば、一覧画面に商品名を表示するとき、ログに長いメッセ...
C#

C# Tips | 文字列操作:文字列を指定文字数で切る

文字列を指定文字数で切るとは?C#で文字列を扱うとき、指定した文字数だけを取り出したい場面があります。例えば、長い商品名を一覧画面で短く表示したい場合や、ログの内容を一定の長さに制限したい場合、入力さ...
C#

C# Tips | 文字列操作:タブを空白に変換する

タブを空白に変換するとは?C#で文字列を扱っていると、タブ文字を空白文字に変換したい場面があります。例えば、テキストファイルから読み込んだデータを整形するときや、入力された文章の見た目を統一するとき、...
C#

C# Tips | 文字列操作:連続する空白を1つにする

改行を統一するとは?プログラムで文字列を扱っていると、ファイルや外部システムによって改行コードが異なることがあります。例えば、Windowsで作成したテキストファイルと、LinuxやmacOSで作成し...
C#

C# Tips | 文字列操作:連続する空白を1つにする

C#で連続する空白を1つにする方法C#で業務システムやWebアプリケーションを開発していると、文字列の中に複数の空白が連続して含まれていることがあります。たとえば、ユーザーが名前や検索キーワードを入力...
C#

C# Tips | 文字列操作:前後の空白を削除する

C#で前後の空白を削除する方法C#で業務システムを開発していると、ユーザーが入力した文字列の前後に余計な空白が入っていることがあります。たとえば、名前を入力するフォームで次のような値が送られてきたとし...
C#

C# Tips | 文字列操作:文字列を安全にTrimする

C#で文字列を安全にTrimする方法C#で業務システムを開発していると、「文字列の前後に余計な空白が入っている」「ユーザーが入力した値に改行が含まれている」「そもそも文字列がnullかもしれない」とい...
C#

C# Tips | 文字列操作:null・空文字・空白を判定する

C#でnull・空文字・空白を判定する方法C#で業務・実務向けのプログラムを開発していると、「文字列に値が入っているか」を確認する処理が頻繁に登場します。たとえば、ユーザーが入力した名前、検索キーワー...
C#

C# Tips | 文字列操作:文字列が空か判定する

C#でnullまたは空文字を判定する方法C#で業務システムを開発していると、入力値や設定値などの文字列が「存在するのか」「何も入っていないのか」を確認する処理が頻繁に登場します。たとえば、ユーザーが入...
C#

C# Tips | 文字列操作:文字列が空か判定する

C#で文字列が空か判定する方法C#で業務・実務向けのプログラムを作っていると、「入力された文字列が空なのか確認したい」という処理が頻繁に登場します。たとえば、ユーザーが入力した名前、検索キーワード、メ...
C#

C# Tips | 非同期・並列処理:AsyncLockを作る

AsyncLockとは「非同期メソッド専用の安全なロック」です業務・実務でC#を使っている読者のみなさんにとって、 async / await を使った非同期メソッドはすでに当たり前になりつつあります...
C#

C# Tips | 非同期・並列処理:Mutexを使う

Mutexとは「プロセスをまたいで排他制御できるロック」です業務・実務でC#を使っている読者のみなさんにとって、 非同期・並列処理や排他制御はすでに身近なテーマだと思いますが、 「プロセスをまたいで排...
C#

C# Tips | 非同期・並列処理:排他制御を実装する

排他制御とは「同時に触ってはいけないものを守る仕組み」です業務・実務でC#を使っている読者のみなさんにとって、 非同期・並列処理は「速さ」と「スケーラビリティ」を手に入れるための強力な手段ですが、 同...
C#

C# Tips | 非同期・並列処理:重複実行を防止する

「重複実行を防止する」は非同期・並列処理の“最後の砦”です業務・実務でC#を使っている読者のみなさんにとって、 非同期・並列処理は「速さ」と「スケーラビリティ」を手に入れるための武器ですが、 同時に ...
C#

C# Tips | 非同期・並列処理:定期実行処理

定期実行処理とは「時間をトリガーにして仕事を自動で回す仕組み」です業務・実務でC#を使っている読者のみなさんにとって、 「毎日〇時にこの処理を実行したい」「5分ごとに監視処理を走らせたい」 といったニ...
C#

C# Tips | 非同期・並列処理:バックグラウンド処理

バックグラウンド処理とは「ユーザーの前から重い仕事を隠す」仕組みです業務・実務でC#を使っている読者のみなさんにとって、 「ユーザーにはすぐレスポンスを返したいけれど、裏側では重い処理が動いている」 ...
C#

C# Tips | 非同期・並列処理:Producer/Consumerを作る

Producer/Consumerとは「仕事を作る人」と「仕事をさばく人」を分ける設計です業務・実務でC#を使っている読者のみなさんにとって、 「仕事がどんどん発生し、それを別の処理でさばきたい」とい...
C#

C# Tips | 非同期・並列処理:Channelを使う

Channelとは「非同期で安全にデータを受け渡しするためのパイプ」です業務・実務でC#を使っている読者のみなさんにとって、 「別の処理に仕事やデータを渡したい」という場面はとても多いと思います。We...
C#

C# Tips | 非同期・並列処理:非同期キューを作る

非同期キューとは「仕事を並べて、順番に・安全にさばくためのレーン」です業務・実務でC#を使っている読者のみなさんにとって、 「やるべき仕事(タスク)がどんどん増えていく」という状況は、とても身近だと思...
C#

C# Tips | 非同期・並列処理:並列処理の例外処理

並列処理の例外処理は「失敗の仕方を設計すること」です業務・実務でC#を使っている読者のみなさんにとって、 非同期・並列処理は「速さ」を手に入れるための強力な武器です。しかし、並列処理を本番環境で使うと...
C#

C# Tips | 非同期・並列処理:Parallel.ForEachAsyncを使う

Parallel.ForEachAsyncとは「async/awaitと並列処理をきれいに両立させるための道具」です業務・実務でC#を使っている読者のみなさんにとって、 非同期処理(async/awa...
C#

C# Tips | 非同期・並列処理:Parallel.ForEachを使う

Parallel.ForEachとは「同期処理を手軽に並列化するための道具」です業務・実務でC#を使っている読者のみなさんにとって、 「大量のデータをできるだけ速く処理したい」というニーズは、とても身...
C#

C# Tips | 非同期・並列処理:SemaphoreSlimを使う

SemaphoreSlimとは「同時に通してよい数を制限する非同期ゲート」です業務・実務でC#を使っている読者のみなさんにとって、 非同期・並列処理はすでに身近な存在だと思います。複数ファイルの同時処...
C#

C# Tips | 非同期・並列処理:並列処理数を制限する

「並列処理数を制限する」とは“速さと安全性のバランスを取る”ための設計です業務・実務でC#を使っている読者のみなさんにとって、 非同期・並列処理はすでに身近な存在だと思います。複数ファイルの同時処理複...
C#

C# Tips | 非同期・並列処理:リトライ付きTask

「リトライ付きTask」とは“一度の失敗であきらめない”ための仕組みです業務・実務でC#を使っている読者のみなさんにとって、 非同期処理はすでに日常的な存在だと思います。外部APIへのHTTP通信DB...
C#

C# Tips | 非同期・並列処理:タイムアウト付きTask

「タイムアウト付きTask」とは“いつまでも待たない”ための安全装置です業務・実務でC#を使っている読者のみなさんにとって、 非同期処理はすでに身近な存在だと思います。外部APIへのHTTP通信DBへ...
C#

C# Tips | 非同期・並列処理:CancellationTokenを使う

CancellationTokenとは「もうやめていいよ」という合図を非同期処理に届ける仕組みです業務・実務でC#を使っている読者のみなさんにとって、 非同期処理はすでに身近な存在だと思います。非同期...
C#

C# Tips | 非同期・並列処理:Task.WhenAnyを使う

Task.WhenAnyとは「いちばん早く終わった非同期処理に、いち早く反応する」ための仕組みです業務・実務でC#を使っている読者のみなさんにとって、 Task.WhenAll は「全部終わるまで待つ...
C#

C# Tips | 非同期・並列処理:Task.WhenAllを使う

Task.WhenAllとは「複数の非同期処理を“まとめて待つ”ための標準ツールです」業務・実務でC#を使っている読者のみなさんにとって、 非同期処理はすでに身近な存在だと思います。複数のHTTPリク...
C#

C# Tips | 非同期・並列処理:Taskを管理する

「Taskを管理する」とは、非同期処理を“放置せずに責任を持って見届ける”ことです業務・実務でC#を使っている読者のみなさんにとって、 async/await と Task はすでにおなじみの存在だと...
C#

C# Tips | 非同期・並列処理:非同期DBアクセス

非同期DBアクセスとは「クエリの結果を待っている間にスレッドを解放する」ことです業務・実務でC#を使っている読者のみなさんにとって、 データベースアクセスはシステムの心臓部と言ってよいほど重要な要素で...
C#

C# Tips | 非同期・並列処理:非同期HTTP通信

非同期HTTP通信とは「ネットワーク待ちの間にスレッドを解放する」ことです業務・実務でC#を使っている読者のみなさんにとって、 HTTP通信はほぼ必ず登場する重要な要素です。外部APIを呼び出す社内の...
C#

C# Tips | 非同期・並列処理:非同期ファイル書き込み

非同期ファイル書き込みとは「ディスクへの保存を待っている間にスレッドを解放する」ことです業務・実務でC#を使っている読者のみなさんにとって、 ファイル書き込みはログ出力・レポート生成・一時ファイル保存...
C#

C# Tips | 非同期・並列処理:非同期ファイル読み込み

非同期ファイル読み込みとは「ディスクI/Oを待っている間にスレッドを解放する」ことです業務・実務でC#を使っている読者のみなさんにとって、 ファイル読み込みはかなり頻繁に登場する処理だと思います。ログ...
C#

C# Tips | 非同期・並列処理:async/awaitを使う

async/awaitとは「待っている間にスレッドを解放する」ための仕組みです業務・実務でC#を使っている読者のみなさんにとって、 非同期処理はもはや避けて通れないテーマです。Web APIで外部サー...
C#

C# Tips | XML・設定ファイル:設定値を型安全に扱う

「設定値を型安全に扱う」とは、バグを未然に防ぐために設定にも“型”を与えることです業務・実務でC#を使っている読者のみなさんにとって、 設定ファイル(appsettings.json や環境変数など)...
C#

C# Tips | XML・設定ファイル:Secret設定を分離する

「Secret設定を分離する」とは、漏えいしてはいけない情報をコードと設定から切り離すことです業務・実務でC#を使っている読者のみなさんにとって、 「Secret(シークレット)」の扱い方は、情報セキ...
C#

C# Tips | XML・設定ファイル:Options Patternを使う

Options Patternとは「設定をクラスとして扱い、DIで安全に渡すための仕組み」です業務・実務でC#(特にASP.NET Core)を使っている読者のみなさんにとって、 設定の扱い方はシステ...
C#

C# Tips | XML・設定ファイル:環境別設定を切り替える

「環境別設定を切り替える」とは、同じコードで開発・テスト・本番を安全に動かす仕組みです業務・実務でC#を使っている読者のみなさんにとって、 「環境ごとに設定を変えたい」というニーズはほぼ必ず出てきます...
C#

C# Tips | XML・設定ファイル:環境変数を読む

「環境変数を読む」とは、設定をOS側から安全に受け取ることです業務・実務でC#を使っている読者のみなさんにとって、 設定値をどこに置くかはとても重要なテーマです。appsettings.json に書...
C#

C# Tips | XML・設定ファイル:IConfigurationを使う

IConfigurationとは何かをまずイメージでつかむ業務・実務でC#を使っている読者のみなさんにとって、設定ファイルは避けて通れない存在です。 appsettings.json や環境変数、コマ...
C#

C# Tips | XML・設定ファイル:appsettings.jsonを読む

「appsettings.jsonを読む」とは、設定をコードから安全に取り出すことです業務・実務でC#を使っている読者のみなさんにとって、 appsettings.json は「アプリの設定をまとめて...
C#

C# Tips | XML・設定ファイル:XMLをLINQで処理する

LINQでXMLを処理するとは「XMLをコレクションとして扱う」という発想です業務・実務でC#を使っている読者のみなさんにとって、XMLは設定ファイル・マスタ情報・外部システム連携などで今もよく使われ...
C#

C# Tips | XML・設定ファイル:XMLノードを取得する

業務で「XMLノードを取得する」ユーティリティが必要になる場面をイメージする業務・実務でC#を使っている読者のみなさんにとって、XMLは設定ファイル・マスタ情報・外部システム連携などで頻繁に登場します...
C#

C# Tips | XML・設定ファイル:XML属性を取得する

業務で「XML属性を取得する」ユーティリティが必要になる場面をイメージする業務・実務でC#を使っている読者のみなさんにとって、XMLは設定ファイルや外部システム連携などでよく登場します。 その中でも「...
C#

C# Tips | XML・設定ファイル:XPathで検索する

業務で「XPathで検索する」ユーティリティが役に立つ場面をイメージする業務・実務でC#を使っている読者のみなさんにとって、XMLは設定ファイルや外部システム連携などでよく登場します。 そのXMLの中...
C#

C# Tips | XML・設定ファイル:XMLをDeserializeする

「XMLをDeserializeする」とは、XMLから“使えるオブジェクト”を復元することです業務・実務でC#を使っている読者のみなさんにとって、 XMLは「設定ファイル」「外部システムとの連携」「バ...
C#

C# Tips | XML・設定ファイル:XMLをSerializeする

「XMLをSerializeする」とは、オブジェクトをそのままXMLに変換する仕組みです業務・実務でC#を使っている読者のみなさんにとって、 XMLは「設定ファイル」「外部システムとの連携」「バッチの...
C#

C# Tips | XML・設定ファイル:XMLを書き出す

業務で使う「XMLを書き出す」ユーティリティの全体像をつかむ業務・実務のC#開発では、XMLは「設定を外部ファイルに保存する」「他システムにデータを渡す」といった場面でよく使われます。 例えば次のよう...
C#

C# Tips | XML・設定ファイル:XMLを読み込む

業務で使う「XMLを読み込む」ユーティリティの全体像をつかむ業務・実務のC#開発では、設定ファイルや外部システムとの連携にXMLが使われる場面が今でも多くあります。 例えば次のような用途です。アプリケ...
C#

C# Tips | セキュリティ:セキュリティUtilityを共通化する

セキュリティUtilityを共通化することは「プロジェクト全体の安全基準を一本化すること」です業務・実務でC#を使ってシステム開発をしている読者のみなさんにとって、 暗号化、入力値サニタイズ、XSS対...
C#

C# Tips | セキュリティ:Secretを安全に管理する

Secretを安全に管理することは「システムの心臓部を守ること」です業務システムやWebアプリケーション、バッチ処理、API連携などを開発する読者のみなさんにとって、 「Secret(シークレット)」...
C#

C# Tips | セキュリティ:CSRF対策

CSRF対策は「正しいユーザーの操作だけを受け付けるための防御」です業務システムやWebアプリケーションを開発する読者のみなさんにとって、 CSRF(Cross-Site Request Forger...
C#

C# Tips | セキュリティ:XSS対策

XSS対策は「ユーザー入力を安全に画面に載せるための防御の要」です業務システムやWebアプリケーションを開発する読者のみなさんにとって、 XSS(クロスサイトスクリプティング)は、SQL Inject...
C#

C# Tips | セキュリティ:Path Traversal対策

Path Traversal対策は「ファイルシステムを攻撃から守るための必須防御」です業務システムやWebアプリケーション、API、バッチ処理などでファイルを扱う読者のみなさんにとって、 Path T...
C#

C# Tips | セキュリティ:SQL Injection対策

SQL Injection対策は「データベースを守るための最重要防御」です業務システムでデータベースを扱う読者のみなさんにとって、 SQL Injection(SQLインジェクション)は、もっとも有名...
C#

C# Tips | セキュリティ:HTMLエスケープする

HTMLエスケープすることは「ユーザー入力を安全に画面表示するためのXSS防御の基本」です業務システムやWebアプリケーションを開発する読者のみなさんにとって、 「ユーザー入力をそのままHTMLに埋め...
C#

C# Tips | セキュリティ:入力値をサニタイズする

入力値をサニタイズすることは「攻撃コードを無害化してシステムを守るための基本防御」です業務システムやWebアプリ、API、バッチ処理など、 どんな種類のソフトウェアでも「外部から受け取る入力値」は必ず...
C#

C# Tips | セキュリティ:HTTPS通信を確認する

HTTPS通信を確認することは「通信路が暗号化されていて、証明書が正しく信頼できるかをチェックする技術」です業務システムやAPIクライアント、バックエンドサービスを開発する読者のみなさんにとって、 「...
C#

C# Tips | セキュリティ:RSA署名を検証する

RSA署名を検証することは「そのデータが本当にその人から来たものであり、改ざんされていないことを確認する技術」です業務システムやAPI連携、認証基盤、ライセンス検証などを設計する読者のみなさんにとって...
C#

C# Tips | セキュリティ:RSA暗号化を扱う

RSA暗号化を扱うことは「安全な鍵交換と少量の機密データ保護のための中核技術」です業務システムやAPI連携、認証基盤などを設計する読者のみなさんにとって、 RSA暗号は「公開鍵暗号」の代表的な方式であ...
C#

C# Tips | セキュリティ:AES暗号化・復号を組み込んだ完全なセキュアデータ管理システム

AES暗号化・復号を組み込んだ完全なセキュアデータ管理システム業務システムでは、機密情報を「安全に保存し、安全に取り出す」ことが求められます。 その中心となる技術が AES暗号化とAES復号 です。 ...
C#

C# Tips | セキュリティ:AES復号を行う

AES復号を行うことは「暗号化された機密情報を正しく取り戻すための必須技術」です業務システムやクラウドサービスでは、 データを AES暗号化して保存・送信し、必要なときに復号して利用する という流れが...
C#

C# Tips | セキュリティ:AES暗号化を行う

AES暗号化を行うことは「機密データを守るための実務レベルの必須技術」です業務システムや社内ツール、クラウドサービスなどを開発する読者のみなさんにとって、 AES暗号化は「機密情報を安全に保存・送信す...
C#

C# Tips | セキュリティ:ハッシュ比較を組み込んだ完全な改ざん検知システム

ハッシュ比較を組み込んだ完全な改ざん検知システムファイルや設定情報、構成データが「いつの間にか書き換えられていた」という事故は、業務システムでは珍しくありません。そこで重要になるのが ハッシュ比較を使...
C#

C# Tips | セキュリティ:Hashを比較する

Hashを比較することは「改ざん検知・認証・整合性チェックの中心技術」です業務システムを開発する読者のみなさんにとって、 ハッシュ値を正しく比較することは、セキュリティの基礎でありながら非常に重要な技...
C#

C# Tips | セキュリティ:ファイルHashを計算する

ファイルハッシュを計算することは「改ざん検知と整合性確認のための基本的なセキュリティ技術」です業務システムや社内ツール、配布用バイナリ、ログファイルなどを扱う読者のみなさんにとって、 ファイルのハッシ...
C#

C# Tips | セキュリティ:SHA-512を使ったファイル検証システムの完全設計図

SHA-512を使ったファイル検証システムは「改ざん検知と安全な配布のための実務的な防御線」です業務システムや社内ツール、配布用バイナリ、ログファイルなどを扱う読者のみなさんにとって、 「ファイルが途...
C#

C# Tips | セキュリティ:SHA-512ハッシュを生成する

SHA-512ハッシュを生成することは「大容量データの改ざん検知や高強度の識別子生成に役立つ重要なセキュリティ技術」です読者のみなさんが業務システムや Web API を開発する際、 SHA-512ハ...
C#

C# Tips | セキュリティ:SHA-256ハッシュを生成する

SHA-256ハッシュを生成することは「データの改ざん検知と識別のための基本的なセキュリティ技術」です業務システムや Web API を開発する読者のみなさんにとって、 SHA-256ハッシュを正しく...
C#

C# Tips | セキュリティ:HMAC署名を検証する

HMAC 署名を検証することは「API の改ざん防止と送信者の正当性を保証するための中心技術」です業務システムや Web API を開発する読者のみなさんにとって、 HMAC(Hash-based M...
C#

C# Tips | セキュリティ:HMAC を使った API 署名システムの完全設計図

HMAC を使った API 署名システムの完全設計図API の安全性を高めるために「HMAC 署名」を導入することは、業務システムにおいて非常に効果的です。 署名の仕組みを正しく設計すれば、外部からの...
C#

C# Tips | セキュリティ:HMAC署名を生成する

HMAC 署名を生成することは「データ改ざん防止の基盤となる重要なセキュリティ技術」です業務システムや Web API を開発する読者のみなさんにとって、 HMAC(Hash-based Messag...
C#

C# Tips | セキュリティ:JWTの有効期限を確認する

JWT の有効期限を確認することは「安全な認証を維持するための最重要ステップ」です読者のみなさんが Web API や業務システムを開発する際、 JWT(JSON Web Token)の 有効期限(e...
C#

C# Tips | セキュリティ:JWTの署名を検証する

JWT の署名検証は「トークンが改ざんされていないことを保証するための最重要ステップ」です読者のみなさんが Web API や業務システムを開発する際、 JWT(JSON Web Token)を安全に...
C#

C# Tips | セキュリティ:JWTを扱う

JWT を扱うことは「安全な認証・権限管理を実務レベルで実装するための中心技術」です読者のみなさんが Web API や業務システムを開発する際、 JWT(JSON Web Token)を安全に扱うこ...
C#

C# Tips | セキュリティ:API トークンの完全な認証システム設計図

API トークンの完全な認証システム設計図API トークン方式の認証は、JWT よりもシンプルでありながら、設計を誤ると重大なセキュリティ事故につながります。 ここでは、業務システムでそのまま使える ...
C#

C# Tips | セキュリティ:API トークンを安全に保存する方法

API トークンを安全に保存する方法は「システム全体のセキュリティを左右する最重要ポイント」です読者のみなさんが業務システムや Web API を開発する際、 API トークンを安全に保存する方法を理...
C#

C# Tips | セキュリティ:API Tokenを生成する

API トークン生成は「安全な認証・アクセス制御の中心となる仕組み」です読者のみなさんが業務システムや Web API を開発する際、 API トークン(Access Token)を安全に生成すること...
C#

C# Tips | セキュリティ:暗号学的乱数を生成する

暗号学的乱数を生成することは「安全なトークン・鍵・識別子を作るための最重要基盤」です読者のみなさんが業務システムを開発する際、 暗号学的に安全な乱数(Cryptographically Secure ...
C#

C# Tips | セキュリティ:ランダムTokenを生成する

ランダムトークン生成は「安全な認証・セッション管理の土台」です読者のみなさんが業務システムを開発する際、 ランダムなトークン(Token)を安全に生成することは必須のセキュリティ要件です。トークンは次...
C#

C# Tips | セキュリティ:パスワード強度を検証する

パスワード強度を検証することは「ユーザーの安全を守るための最初の防御線」です読者のみなさんが業務システムを開発する際、 パスワード強度チェックは必須のセキュリティ機能です。 どれだけ強力なハッシュ方式...
C#

C# Tips | セキュリティ:Argon2を利用する

Argon2 を利用することは「現代の攻撃に最も強いパスワードハッシュを実務で安全に扱うための必須ユーティリティです」読者のみなさんが業務システムを開発する際、 パスワードを安全に保存することは最重要...
C#

C# Tips | セキュリティ:BCryptを利用する

BCrypt を利用することは「パスワードを“攻撃者が高速に推測できない形”で保存するための強力なユーティリティです」業務システムでは、ユーザーのパスワードを安全に扱うことが必須です。 そのために使わ...
C#

C# Tips | セキュリティ:PBKDF2を利用する

PBKDF2 を利用することは「パスワードを“絶対に戻せない形”で安全に保存するための最重要ユーティリティです」業務システムでは、ユーザーのパスワードを安全に扱うことが必須です。 しかし、初心者の方が...
C#

C# Tips | セキュリティ:パスワードを安全にHashする

パスワードの安全なハッシュ化は「ユーザーの秘密を守るための最重要セキュリティ基盤です」パスワードを安全に扱うことは、業務システムにおけるセキュリティの最重要ポイントです。 初心者の方でも誤解しやすいの...
C#

C# Tips | ログ・例外・診断:実行ログ自動化

実行ログ自動化は「人間が書くログを“仕組みで書かせる”ことで品質を安定させる技術です」業務システムでは、ログは“後から原因を追うための生命線”です。 しかし、ログを人間が手書きすると次のような問題が必...
C#

C# Tips | ログ・例外・診断:管理者判定

管理者判定は「このアプリが“どこまで踏み込めるか”を事前に把握するための安全装置です」業務システムでは、アプリが管理者権限で動いているかどうかが、 ファイル操作・レジストリ操作・サービス制御・ネットワ...
C#

C# Tips | ログ・例外・診断:権限チェック

権限チェックは「このアプリが“何を許されているか”を事前に把握するための技術です」業務システムでは、実行ユーザーが誰かだけでなく、 そのユーザーがどんな権限を持っているかが極めて重要になります。 権限...
C#

C# Tips | ログ・例外・診断:実行パス取得

実行ユーザー取得は「このアプリを“誰が”動かしているか」を正しく知るための技術です業務システムでは、アプリがどのユーザー権限で動いているかが非常に重要になります。 例えば、Windows サービスなら...
C#

C# Tips | ログ・例外・診断:実行パス取得

実行パス取得は「アプリがどこから動いているか」を正しく知るための技術業務・実務で C# を書いていると、「設定ファイルをどこから読むか」「ログファイルをどこに出すか」「一時ファイルをどこに置くか」とい...
C#

C# Tips | ログ・例外・診断:.NETバージョン取得

はじめに:.NETバージョン取得は「どんなエンジンで走っているか」を知るためのもの同じ C# コードでも、 どの .NET ランタイムバージョン で動いているかによって、 使える API や挙動、パフ...
C#

C# Tips | ログ・例外・診断:OS情報取得

はじめに:OS情報取得は「どんな土台の上で動いているか」を知るためのもの業務システムで地味に効いてくるのが、「OS の違い」です。 同じ C# コードでも、Windows Server のバージョンが...
C#

C# Tips | ログ・例外・診断:環境情報取得

はじめに:環境情報取得は「どこで・どんな設定で動いているか」を数字と言葉で残すこと業務システムで一番困るのは、 「開発環境では再現しないのに、本番だけでバグが出る」 「同じコードなのに、サーバーによっ...
C#

C# Tips | ログ・例外・診断:CPU使用率取得

はじめに:CPU使用率取得は「どれだけ“頭フル回転”しているか」を数字で知るための道具「サーバーが重い」「このバッチ、CPU食い過ぎじゃない?」 こういう会話、業務システムだとよく出てきますよね。でも...
C#

C# Tips | ログ・例外・診断:スレッド数取得

スレッド数取得は「アプリがどれだけ“並行処理のリソース”を使っているか」を数字で知る技術業務システムでは、 「なんか CPU が高い」「サーバーが重い」「スレッドプールが枯渇しているかも」 といった問...
C#

C# Tips | ログ・例外・診断:GC情報取得

はじめに:GC情報取得は「.NET がどれくらい“片付け仕事”をしているか」を数字で見ることC# の世界では、メモリの解放はガベージコレクタ(GC)が自動でやってくれます。これはとても便利ですが、その...
C#

C# Tips | ログ・例外・診断:メモリ使用量取得

はじめに:メモリ使用量取得は「どれくらい“盛っている”かを数字で知るためのもの」パフォーマンスの話をしていると、必ず出てくるのが「メモリ食いすぎてない?」という心配です。でも、感覚だけで「重そう」と言...
C#

C# Tips | ログ・例外・診断:パフォーマンス計測

はじめに:パフォーマンス計測は「コードの速さを“感覚”ではなく“数字”で語るための道具」業務システムを書いていると、必ずこういう会話が出てきます。「この処理、なんか遅くない?」「どれくらい遅いんだっけ...
C#

C# Tips | ログ・例外・診断:トレース出力

はじめに:トレース出力は「本番も視野に入れた“軽量ログ”」「デバッグ出力」は開発中にとても便利ですが、多くはデバッグビルド専用で、本番では消えてしまいます。一方、業務システムでは「本番環境でも、ある程...
C#

C# Tips | ログ・例外・診断:デバッグ出力

はじめに:デバッグ出力は「本番にはいらないけど、開発中はめちゃくちゃ役に立つメモ」コードを書いているとき、「ここまで処理が来ているか確認したい」「この変数の中身を一瞬だけ見たい」という場面が必ず出てき...
C#

C# Tips | ログ・例外・診断:タイムアウト制御

はじめに:タイムアウト制御は「いつまでも待たない」ための安全装置業務システムで一番イヤなのは、「固まっているのか、まだ処理中なのか分からない状態」です。外部 API、DB、ファイルアクセス、重い計算処...
C#

C# Tips | ログ・例外・診断:指数バックオフ

はじめに:指数バックオフは「だんだん距離を取りながら、もう一度だけ試す」リトライ戦略外部 API、クラウドサービス、DB、メッセージキューなどにアクセスするとき、一時的なエラー(ネットワークの瞬断、サ...
C#

C# Tips | ログ・例外・診断:リトライ処理

はじめに:リトライ処理は「一度コケても、あきらめずにもう一歩踏み込む」仕組み業務システムでは、外部サービスや DB、ファイルアクセスなど「環境に左右される処理」がたくさんあります。ネットワークが一瞬不...
C#

C# Tips | ログ・例外・診断:エラーコード管理

はじめに:エラーコード管理は「エラーに“番号付きの名前”を与えること」業務システムで本気で運用を考え始めると、「エラーが起きました」だけでは足りなくなります。どの画面でどの種類のエラーがどれくらいの頻...
C#

C# Tips | ログ・例外・診断:非同期例外処理

はじめに:非同期例外処理は「時間差で起きる失敗を、ちゃんと捕まえる技術」async/await を使い始めると、最初に戸惑うのが「例外がどこに飛んでいくのか分からない」という感覚です。同期コードなら、...
C#

C# Tips | ログ・例外・診断:タスク例外処理

はじめに:タスク例外処理は「非同期の失敗を“なかったこと”にしない技術」async/await や Task を使い始めると、最初にハマりやすいのが 「例外がどこに行ったか分からない問題」 です。同期...
C#

C# Tips | ログ・例外・診断:グローバル例外

はじめに:「グローバル例外」は“アプリ全体でただ一つの例外の窓口”を作ること例外処理って、最初は「必要なところで try-catch 書けばいいでしょ?」で済ませがちですよね。でもアプリが大きくなると...
C#

C# Tips | ログ・例外・診断:未処理例外捕捉

はじめに:「未処理例外捕捉」は“最後の砦”を用意することどれだけ丁寧に try-catch を書いても、どこかで必ず「取りこぼしの例外」が出ます。想定していなかったバグ、ライブラリ内部の例外、テストで...
C#

C# Tips | ログ・例外・診断:例外ログ共通化

はじめに:例外ログ共通化は「どこで落ちても、同じ形で記録する」ための仕組み業務システムが大きくなると、あちこちで例外をログに書くコードが散らばりがちになります。catch (Exception ex)...
C#

C# Tips | ログ・例外・診断:スタックトレース整形

はじめに:スタックトレース整形は「エラーの道筋を、人間が読める形にする」技例外が発生したとき、ex.ToString() や ex.StackTrace をそのままログに出すと、情報は多いけれど「どこ...
C#

C# Tips | ログ・例外・診断:例外再スロー

はじめに:「例外再スロー」は“いったん受け止めてから、ちゃんと投げ直す”テクニック例外をキャッチしたあとに、こう思う場面がよくあります。ログは取りたいでも、この場では処理できないだから、上の層に判断を...
C#

C# Tips | ログ・例外・診断:例外ラップ

はじめに:「例外ラップ」は“生のエラーを、そのまま外に漏らさないためのフィルター”業務システムを書いていると、いろんな層で例外が飛びます。DB アクセス、外部 API、ファイル I/O、ライブラリ内部...
C#

C# Tips | ログ・例外・診断:ログローテート

はじめに:ログローテートは“ログを永遠に増やさないための自動整理術”ログを出し続けるアプリは、放っておくと ログファイルが無限に肥大化 します。その結果、ディスクがいっぱいになり、アプリが止まることす...
C#

C# Tips | ログ・例外・診断:ログ削除

はじめに:「ログ削除」は“未来のトラブル調査”と“ディスク容量”の綱引き調整ちゃんとログを出し始めると、次に必ず出てくるのが「ログが消えない問題」です。ログは残しておきたい、でもディスクは有限。このバ...
C#

C# Tips | ログ・例外・診断:ログ圧縮

はじめに:「ログ圧縮」は“ログを捨てずに、場所だけ小さくする”技業務システムでログをちゃんと出し始めると、必ずぶつかる問題があります。「ディスクがログでパンパンになる」です。ログは残しておきたい。でも...
C#

C# Tips | ログ・例外・診断:JSONログ

はじめに:コンソールログは「今この瞬間の動き」を見るための窓業務でも学習でも、まず一番最初に触るログがコンソールログです。画面にそのまま出るので、「今なにが起きているか」をリアルタイムで確認できます。...
C#

C# Tips | ログ・例外・診断:コンソールログ

はじめに:「コンソールログ」は“今この瞬間の状態を一番早く知る窓”業務でも、開発でも、まず一番手軽なのがコンソールログです。画面にサッと出てくれるので、「今なにが起きているか」をリアルタイムで確認でき...
C#

C# Tips | ログ・例外・診断:ファイルログ

はじめに:「ファイルログ」は“あとから読み返せるブラックボックスレコーダー”コンソールにログを出すだけだと、アプリを閉じた瞬間に全部消えます。でも業務システムでは、数日後・数週間後に「そのとき何が起き...
C#

C# Tips | ログ・例外・診断:ログレベル制御

はじめに:「ログレベル制御」は“どの声量でしゃべるか”を決める仕組みログは「全部出せばいい」わけではありません。本番では重要なものだけ見たいし、調査中は細かい情報も欲しい。この「どこまで細かくログを出...
C#

C# Tips | ログ・例外・診断:ログ出力

はじめに:「ログ出力」は“未来の自分へのメッセージ”業務システムで一番「効いてくる」のがログです。動いているときは意識されないのに、トラブルが起きた瞬間に「ログがすべての命綱」になります。何が起きたの...
C#

C# Tips | コレクション・LINQ:LINQ式キャッシュ

はじめに:「LINQ式キャッシュ」は“同じクエリを何度も組み立てないための知恵”LINQ を使っていると、こういうコードが増えがちです。var q1 = users.Where(x => x.IsAc...
C#

C# Tips | コレクション・LINQ:条件付き並び替え

はじめに:「条件付き並び替え」は“状況に応じてソートルールを切り替える”技業務システムでは、単純に「いつも同じ並び順」だけで済むことはあまりありません。画面のソート条件をユーザーが選べる検索条件によっ...
C#

C# Tips | コレクション・LINQ:並び替えキー複数

はじめに:「並び替えキー複数」は“人間の並び順ルールをそのままコードにする”技業務でデータを並び替えるとき、単純に「ID順」だけで済むことはあまりありません。部署コード昇順、その中で社員区分昇順、さら...
C#

C# Tips | コレクション・LINQ:HashSet活用

はじめに:「HashSet活用」は“とにかく速く・かんたんに重複と集合を扱う”技業務で LINQ やコレクションを使っていると、こういう処理がよく出てきます。同じ値が含まれているかを高速に判定したい重...
C#

C# Tips | コレクション・LINQ:比較用EqualityComparer

はじめに:「比較用EqualityComparer」は“何をもって同じとみなすか”をコードにする道具LINQ やコレクションを使っていると、こういう場面がよく出てきます。「ユーザーIDが同じなら同じユ...
C#

C# Tips | コレクション・LINQ:シャローコピー

はじめに:「シャローコピー」は“速いけど、油断すると元を汚すコピー”ディープコピーの逆側にあるのが シャローコピー(浅いコピー) です。一言でいうと、「入れ物は別だけど、中身(参照先)はそのまま共有す...
C#

C# Tips | コレクション・LINQ:ディープコピー

はじめに:「ディープコピー」は“元データを絶対に汚したくないときの保険”業務コードを書いていると、こういうことが起きがちです。「編集用にコピーしたつもりが、元のデータまで変わってしまった」「画面でキャ...
C#

C# Tips | コレクション・LINQ:Immutable変換

はじめに:「Immutable変換」は“絶対に書き換えられないコレクション”を手に入れる技業務システムを書いていると、こういう悩みが出てきます。「このコレクション、誰かにうっかり書き換えられてバグにな...
C#

C# Tips | コレクション・LINQ:Span対応変換

はじめに:「Span対応変換」は“速さを意識した LINQ の次の一歩”LINQ は書きやすいけれど、「配列や文字列をガッツリ触る処理」でパフォーマンスを突き詰めたいときには、メモリ確保(アロケーショ...
C#

C# Tips | コレクション・LINQ:ReadOnlyCollection化

はじめに:「ReadOnlyCollection化」は“触ってほしくないコレクションに鍵をかける”技業務コードを書いていると、こういう気持ちになる場面がよくあります。「このコレクション、外から中身をい...
C#

C# Tips | コレクション・LINQ:ObservableCollection変換

はじめに:「ObservableCollection変換」は“画面とコレクションをつなぐ橋”業務アプリ(特に WPF / MAUI / WinUI など)を書くと、List<T> や IEnumera...
C#

C# Tips | コレクション・LINQ:キャッシュ付き検索

はじめに:「キャッシュ付き検索」は“同じものを何度も探さない”ための技LINQ で検索を書くとき、最初はだいたいこうなります。var user = users.FirstOrDefault(x => ...
C#

C# Tips | コレクション・LINQ:高速検索

はじめに:「高速検索」は“探し方を変えるだけで世界が変わる”テクニックLINQ を覚えたての頃は、だいたいこう書きがちです。var user = users.FirstOrDefault(x => x...
C#

C# Tips | コレクション・LINQ:順序保持Distinct

はじめに:「順序保持 Distinct」は“最初に出てきた順だけを残す”技「重複を消したいけど、元の並び順は崩したくない」——業務でデータを扱っていると、かなり頻繁に出てきます。ログの順番はそのままに...
C#

C# Tips | コレクション・LINQ:重複カウント

はじめに:「重複カウント」は“どれがどれだけ被っているか”を一発で見抜く技業務でデータを扱っていると、こういうことを知りたくなる場面がよく出てきます。どの商品が何回注文されているかどのユーザーが何回ロ...
C#

C# Tips | コレクション・LINQ:インデックス付きSelect

はじめに:「インデックス付き Select」は“要素の値+位置情報”を同時に扱える便利ワザLINQ の Select は「値を変換する」ためのメソッドですが、実務では「値だけでなく、その要素が何番目か...
C#

C# Tips | コレクション・LINQ:Empty除外

はじめに:「Empty除外」は“中身がないものを先にどかす”テクニックnull を除外する話をしましたが、実務ではもう一つよく出てくる「やっかいな存在」がいます。それが「空文字」や「空コレクション」、...
C#

C# Tips | コレクション・LINQ:Null除外

はじめに:「Null除外」は“ゴミを先に掃き出してから考える”テクニック業務コードを書いていると、ほぼ確実にこうなります。データのどこかに null が紛れ込むnull を意識せずにプロパティにアクセ...
C#

C# Tips | コレクション・LINQ:AsParallel制御

はじめに:「AsParallel制御」は“並列の暴れ方に手綱をつける”技前回の「並列 LINQ」は、「AsParallel() を付けると並列になるよ」という話でした。でも、実務で本気で使うなら、どれ...
C#

C# Tips | コレクション・LINQ:並列LINQ

はじめに:「並列 LINQ」は“同じ処理をみんなで手分けする”仕組み同じような処理を大量のデータに対して繰り返すとき、1 件ずつ順番に処理するとどうしても時間がかかります。そこで出てくるのが「並列 L...
C#

C# Tips | コレクション・LINQ:Batch処理

はじめに:「Batch処理」は“まとめてやるけど、やり過ぎない”ための設計業務で C# を書いていると、こういう悩みがよく出てきます。一度に 10 万件 INSERT すると重いし、失敗したときの巻き...
C#

C# Tips | コレクション・LINQ:Chunk分割

はじめに:「Chunk 分割」は“データを小分けにして扱う”ための技業務でデータを扱っていると、こういう状況がよく出てきます。一度に 10 万件は処理したくないので、1000 件ずつに分けて順番に処理...
C#

C# Tips | コレクション・LINQ:All判定

はじめに:「All 判定」は“全員ちゃんと条件を満たしているか?”を見るチェックリストAny が「1人でもそういう人がいるか?」を見るメソッドだとしたら、All は「全員ちゃんとルールを守れているか?...
C#

C# Tips | コレクション・LINQ:Any判定

はじめに:「Any 判定」は“あるか・ないか”を一瞬で決めるスイッチ業務コードを書いていると、こんなことを知りたくなる場面が山ほどあります。「このリスト、1件でも入ってる?」「この条件を満たすデータっ...
C#

C# Tips | コレクション・LINQ:FirstOrDefault安全版

はじめに:「FirstOrDefault安全版」は“意図しない 0 や null を潰すための仕掛け”FirstOrDefault は LINQ の超定番メソッドですが、その「便利さ」の裏側で、初心者...
C#

C# Tips | コレクション・LINQ:ランダム抽出

はじめに:「ランダム抽出」は“偏りなく一部だけを見る”ための技ランダム抽出は、「大量のデータの中から、ランダムに一部だけ取り出す」ためのテクニックです。テストデータを適当に 100 件だけ見たいとき、...
C#

C# Tips | コレクション・LINQ:シャッフル

はじめに:「シャッフル」は“順番の意味を一度壊す”テクニックシャッフルは、「コレクションの要素の順番をランダムに並べ替える」ことです。トランプを切るイメージが一番近いです。業務でも、実はちょこちょこ出...
C#

C# Tips | コレクション・LINQ:和集合

はじめに:「和集合」は“全部まとめて、ダブりは1つにする”技業務でデータを扱っていると、こういう場面がよく出てきます。「A システムと B システムのユーザーを“全部”見たい」「複数ファイルに分かれて...
C#

C# Tips | コレクション・LINQ:積集合

はじめに:「積集合」は“共通しているものだけを抜き出すフィルター”業務でデータを扱っていると、こういう問いがよく出てきます。「A システムと B システムの両方に登録されているユーザーは?」「マスタに...
C#

C# Tips | コレクション・LINQ:差集合

はじめに:「差集合」は“どっちにだけあるか?”をはっきりさせる技業務でデータを扱っていると、こういう問いがよく出てきます。「昨日はあったけど、今日はなくなったデータはどれ?」「マスタにはあるけど、イン...
C#

C# Tips | コレクション・LINQ:マージ

はじめに:「マージ」は“バラバラの情報を一つの流れにまとめる技”業務システムでは、こういう状況がよく出てきます。「今年分のデータと昨年分のデータを一緒に扱いたい」「マスタと明細をくっつけて、見やすい形...
C#

C# Tips | コレクション・LINQ:安全取得

はじめに:「安全取得」は“落ちないコード”を書くための必須スキル業務システムで一番イヤなのは、「たまたまデータがなかっただけで落ちる」パターンです。IndexOutOfRangeException、I...
C#

C# Tips | コレクション・LINQ:キー存在判定

はじめに:「キー存在判定」は“ある前提で動くか・ない前提で動くか”を決めるスイッチ業務システムで Dictionary を使い始めると、必ず出てくる問いがあります。「このキー、本当にある前提で動いてい...
C#

C# Tips | コレクション・LINQ:Dictionary→List

はじめに:Dictionary→List は“いったん平らに戻す”操作Dictionary は「キーで一発検索できる」便利な入れ物ですが、ときどき「順番に並べて処理したい」「LINQ でゴリゴリ絞り込...
C#

C# Tips | コレクション・LINQ:List→Dictionary

はじめに:「List→Dictionary」は“ただの列に索引をつける作業”業務コードを書いていると、最初はだいたい List<T> から始まります。社員一覧、商品一覧、売上明細一覧……どれもまずは「...
C#

C# Tips | コレクション・LINQ:辞書変換

はじめに:「辞書変換」は“検索しやすい形に並び替える技”業務でよくあるのが、社員番号から社員情報をすぐ取りたい商品コードから商品情報を一発で引きたい部署コードから部署名をすぐ知りたいこういう「キーから...
C#

C# Tips | コレクション・LINQ:最小値取得

はじめに:「最小値取得」は“いちばん小さい値を素早く見つける技”業務システムでは、最大値と同じくらい「最小値」もよく使います。最も安い商品価格最も古い日付(最初の処理日)最も少ない数量最も短い対応時間...
C#

C# Tips | コレクション・LINQ:最大値取得

はじめに:「最大値取得」は“いちばん大きいものを一瞬で見つける技”業務システムでは、よくこういう問いが出てきます。「今日の売上の最大金額は?」「この顧客の最新購入日は?」「この一覧の中で、いちばん大き...
C#

C# Tips | コレクション・LINQ:平均算出

はじめに:「平均算出」は“感覚をつかみやすい数字に整える技”合計は「全体の大きさ」を教えてくれますが、平均は「1件あたりどれくらいか?」という“感覚”を教えてくれます。平均単価平均購入金額平均対応時間...
C#

C# Tips | コレクション・LINQ:合計算出

はじめに:「合計算出」は“バラバラなお金や数を一つの数字にまとめる技”業務システムで「合計」は、ほぼ必ず出てきます。売上合計数量合計工数合計C# / LINQ では Sum を使うことで、for 文を...
C#

C# Tips | コレクション・LINQ:件数カウント

はじめに:「件数カウント」は“システムの現状を数字でつかむ道具”業務システムでは、常に「いま何件あるか?」が問われます。未処理の件数エラー件数今日登録された件数これをコードで表現するのが「件数カウント...
C#

C# Tips | コレクション・LINQ:グルーピング

はじめに:「グルーピング」は“バラバラの明細を、かたまりにまとめる技”業務システムでは、こんなことをよくやります。「部署ごとに社員をまとめたい」「顧客ごとに売上を集計したい」「日付ごとにアクセス数を集...
C#

C# Tips | コレクション・LINQ:フィルタリング

はじめに:「フィルタリング」は“欲しいデータだけをすくい取る作業”業務システムの一覧画面って、だいたいこういう条件がありますよね。「部署=営業だけ」「状態=未処理だけ」「金額が 10,000 円以上だ...
C#

C# Tips | コレクション・LINQ:ページング

はじめに:「ページング」は“データを一口サイズに切り分ける技”業務システムの一覧画面で、「1ページ 20件」「次へ」「前へ」といった UI をよく見ますよね。これが「ページング」です。データは何千件・...
C#

C# Tips | コレクション・LINQ:カスタムソート

はじめに:「カスタムソート」は“業務ルールをそのまま並び順にする技”「優先度は High → Middle → Low の順」「ステータスは 未処理 → 処理中 → 完了 の順」「部署コードは A, ...
C#

C# Tips | コレクション・LINQ:逆順ソート

はじめに:「逆順ソート」は“優先度の高いものを先頭に持ってくる技”業務システムでは「新しい順」「金額の大きい順」「重要度の高い順」のように、“大きいほう・新しいほうを先頭にしたい”場面がとても多いです...
C#

C# Tips | コレクション・LINQ:ソート

はじめに:「ソート」は“人間が読みやすい順番に並べ替える作業”業務システムでは、一覧画面・帳票・CSV 出力など、「同じデータでも、どの順番で並んでいるか」がものすごく大事になります。社員一覧なら「社...
C#

C# Tips | コレクション・LINQ:重複除去

はじめに:「重複除去」は“データをきれいに整えるフィルター”業務システムでは、同じ ID のレコードが二重に入っていたり、同じメールアドレスが何度も出てきたりと、「重複データ」がよく紛れ込みます。この...
C#

C# Tips | コレクション・LINQ:空List生成

はじめに:「空List生成」は“安全な初期値”を手に入れるテクニック業務コードでよくあるパターンとして、List<string> names = null;// ここで落ちるint count = n...
C#

C# Tips | コレクション・LINQ:null安全List

はじめに:「null安全List」は“落とし穴を先に埋めておく道具”業務コードでありがちな例として、List<string> names = null;// ここで落ちるforeach (var n ...
C#

C# Tips | 日付・時間処理:月日数取得

はじめに:「月日数取得」は“カレンダー計算の出発点”「今月は何日まである?」「締め日は月末」「2月の最終営業日」こういう処理をちゃんと書こうとすると、必ず必要になるのが「その月が何日まであるか」です。...
C#

C# Tips | 日付・時間処理:閏年判定

はじめに:「閏年判定」は“2月29日があるかどうかを見抜く小さな知恵”「この年は 2月29日があるのか?」「2024年は閏年だけど、2100年は?」カレンダーや日付計算を扱うシステムでは、“閏年(うる...
C#

C# Tips | 日付・時間処理:月跨ぎ判定

はじめに:「月跨ぎ判定」は“どの月のデータとして扱うか”を決めるための鍵業務システムでは、「勤務が 1/31 22:00〜2/1 06:00 のとき、どの月の勤務として集計するか」「売上期間が 3/2...
C#

C# Tips | 日付・時間処理:年月のみ比較

はじめに:「年月のみ比較」は“日付の細かさをあえて捨てるテクニック”業務システムでは、「2026年2月の売上」「2026年2月度の勤怠」「請求月が同じかどうか」のように、“日付”ではなく“年月”だけを...
C#

C# Tips | 日付・時間処理:日付バリデーション

日付バリデーションは“入力のゆらぎを正しい日付に整えるための基盤”日付入力は業務システムで最もトラブルが起きやすい領域です。「2026/02/30」「2026-13-01」「20260218」「2/1...
C#

C# Tips | 日付・時間処理:時刻バリデーション

はじめに:「時刻バリデーション」は“バグの温床”を最初に潰す作業「09:00 と入力してほしいのに、9時 とか 9:0 とか 25:00 とかが来る」「開始時刻より終了時刻が前になっている」時刻入力ま...
C#

C# Tips | 日付・時間処理:Cron生成

はじめに:「Cron生成」は“人間の言葉をスケジュール文字列に変換する作業”「毎日3時に実行したい」「平日の9時ちょうどにだけ動かしたい」「5分ごとにポーリングしたい」人間にとっては分かりやすいこの言...
C#

C# Tips | 日付・時間処理:Cron表現解析

はじめに:なぜ「Cron表現解析」が業務で効くのか業務システムで「毎日3時に」「5分ごとに」「平日の9時だけ」といったスケジュールを柔軟に設定したいとき、文字列1本でスケジュールを表現できるのが「Cr...
C#

C# Tips | 日付・時間処理:スケジューラ

はじめに 「スケジューラ」は“時間で動くバッチのミニ版”「毎日 3:00 にバックアップしたい」「5分ごとにキューをポーリングしたい」「指定時刻になったら一度だけ処理したい」こういう“時間をトリガーに...
C#

C# Tips | 日付・時間処理:実行時間計測

はじめに 「実行時間計測」は“なんとなく”を数字に変える技術「この処理、重そうだけど本当にボトルネックなのか?」「リファクタリングしたけど、速くなったって言い切れる?」こういうときに必要なのが「実行時...
C#

C# Tips | 日付・時間処理:ストップウォッチ

はじめに 「ストップウォッチ」は“処理時間を見える化する道具”「この処理、どれくらい時間かかってるんだろう?」「最適化したつもりだけど、本当に速くなった?」こういう“処理時間の見える化”に使うのが、C...
C#

C# Tips | 日付・時間処理:タイマー処理

はじめに 「タイマー処理」は“時間を味方につける仕組み”「5秒ごとに処理したい」「1分後にだけ一回だけ実行したい」「一定間隔でバッチを回したい」こういう“時間をトリガーにした処理”をまとめて「タイマー...
C#

C# Tips | 日付・時間処理:深夜時間判定

はじめに 「深夜時間判定」は“割増賃金の境界線をコードにする作業”勤務時間の中でも、「22:00〜翌5:00」は“深夜労働”として割増賃金の対象になる、というルールがよくあります。この“深夜時間”を正...
C#

C# Tips | 日付・時間処理:休憩時間控除

はじめに 「休憩時間控除」は“働いた時間と、そうでない時間を分ける線引き”勤務時間の計算で一番よく出てくるのが「休憩時間を引く」という処理です。ここを雑にやると、「働いていない時間にまで給料を払ってし...
C#

C# Tips | 日付・時間処理:勤務時間計算

はじめに 「勤務時間計算」は“お金と信頼に直結するロジック”勤務時間の計算は、「出勤時刻と退勤時刻の差を取れば終わり」…では、まったく終わりません。休憩時間を引く深夜時間を分ける所定労働時間と残業時間...
C#

C# Tips | 日付・時間処理:日付差ヒューマン表示

はじめに 「日付差ヒューマン表示」は“数字を感覚に変える翻訳機”「2026/02/18 20:43:00 から 2026/02/18 21:10:00 まで 1620 秒です」よりも、「27分前」「約...
C#

C# Tips | 日付・時間処理:ファイル名用日時

はじめに 「ファイル名用日時」は“あとから探しやすく、壊れにくい名前のコア”バックアップファイル、エクスポートCSV、ログのローテーションファイル。こういう「時刻付きファイル名」を付けるとき、なんとな...
C#

C# Tips | 日付・時間処理:ログ用日時生成

はじめに 「ログ用日時」は“あとから真実を追いかけるための命綱”ログって、「とりあえず DateTime.Now 出しとけばいいでしょ?」で済ませがちなんですが、本気でトラブル調査をしようとすると、「...
C#

C# Tips | 日付・時間処理:ミリ秒切り捨て

はじめに 「ミリ秒切り捨て」は“誤差とノイズを消すための小技”API のレスポンス時刻、ログのタイムスタンプ、DB に保存する日時。こういうところで「ミリ秒までバラバラだと比較しづらい」「テストが安定...
C#

C# Tips | 日付・時間処理:時刻丸め

はじめに 「時刻丸め」は“時間の解像度を落とすテクニック”「打刻は5分単位にそろえたい」「グラフは1分刻みで表示したい」「ログを10秒単位でまとめたい」こういう“細かすぎる時刻を、キリのいい時刻にそろ...
C#

C# Tips | 日付・時間処理:日付丸め

はじめに 「日付丸め」は“時間をざっくり区切るための技”「集計は1時間単位で」「グラフは5分刻みで」「日付だけにそろえたい」こういう“きっちりした時刻”ではなく“区切りの時刻”が欲しいときに必要になる...
C#

C# Tips | 日付・時間処理:四半期判定

はじめに 「四半期判定」は“月をざっくり4つに区切るラベル付け”「この売上は第何四半期?」「四半期ごとの集計を出したい」「決算Q1〜Q4でグラフを描きたい」こういう“3ヶ月単位”の世界で必ず必要になる...
C#

C# Tips | 日付・時間処理:週番号取得

はじめに 「週番号取得」は“時間をざっくり区切るためのラベル付け”「この売上は何週目のデータ?」「週次レポートの第何週?」「ISO週番号でログを集計したい」こういう“週単位”の集計やレポートを作るとき...
C#

C# Tips | 日付・時間処理:年一覧生成

はじめに 「年一覧生成」は“長期スパンの集計・分析の土台”売上の年次推移、年度別の件数集計、ログの年別アーカイブ。こういう「年単位」で物事を見る処理の裏側には、たいてい「年一覧」がいます。C# では、...
C#

C# Tips | 日付・時間処理:月一覧生成

はじめに 「月一覧生成」は“月次処理の背骨”になる「指定期間の月ごとの集計」「月次レポート」「月別売上グラフ」こういう“月単位”の処理をするときに土台になるのが「月一覧生成」です。C# では、Date...
C#

C# Tips | 日付・時間処理:日付一覧生成

はじめに 「日付一覧生成」は“カレンダー系ロジックの土台”「指定期間の全日付を出したい」「1ヶ月分のカレンダーを作りたい」「営業日一覧を作りたい」こういうときに必ず必要になるのが「日付一覧生成」です。...
C#

C# Tips | 日付・時間処理:日付範囲判定

はじめに 「日付範囲判定」は“ビジネスルールの線引き”そのもの「この日付はキャンペーン期間内か?」「契約有効期間に含まれるか?」「集計対象期間か?」こういう“期間に入っているかどうか”の判定は、業務シ...
C#

C# Tips | 日付・時間処理:日付比較

はじめに 「日付比較」は“ビジネスルールをコードに落とす入り口”「締切を過ぎているか?」「この期間内か?」「開始日より前か後か?」業務システムで“条件分岐”を書くとき、ほぼ必ず出てくるのが「日付比較」...
C#

C# Tips | 日付・時間処理:UnixTime変換

はじめに 「UnixTime変換」は“異世界の時計との変換アダプタ”API やログ、JavaScript、Linux 系ツールと連携するときに、よく出てくるのが「UnixTime(UNIX時間)」です...
C#

C# Tips | 日付・時間処理:ISO8601変換

はじめに 「ISO8601変換」は“システム同士の共通語”をしゃべるための必須スキルAPI、バッチ連携、ログ、クラウドサービス。システム同士が日時をやり取りするとき、ほぼ必ず出てくるのが「ISO860...
C#

C# Tips | 日付・時間処理:タイムゾーン変換

はじめに 「タイムゾーン変換」は“世界とつながる日時処理の要”日本だけで完結しているうちはあまり意識しませんが、クラウド、海外拠点、スマホアプリなどが絡み始めると、「この日時はどこの国の時間なのか?」...
C#

C# Tips | 日付・時間処理:経過時間計算

はじめに 「経過時間計算」は“ビジネスのリアルタイム感”を数値にする「処理に何秒かかった?」「障害発生から何時間経過?」「滞在時間は何分?」こういう“時間の距離”は、業務・実務の世界でかなり頻繁に出て...
C#

C# Tips | 日付・時間処理:経過日数計算

はじめに 「経過日数計算」は“ビジネスの距離感”を数値にする「申込から何日経った?」「納品から何日以内?」「障害発生から何日経過?」こういう“日数の距離”は、業務システムで本当によく出てきます。C# ...
C#

C# Tips | 日付・時間処理:年齢計算

はじめに 「年齢計算」は“日付ロジックの入門にして落とし穴だらけのテーマ”「この人は今何歳か」「○日時点で何歳だったか」。業務システムでも、顧客管理・会員管理・保険・医療・学校など、年齢計算は本当によ...
C#

C# Tips | 日付・時間処理:祝日判定

はじめに 「祝日判定」は“営業日ロジックの一番やっかいな部分”土日判定はコードで簡単に書けますが、「祝日」はそうはいきません。日本の祝日は法律で決まっていて、改正されたり、オリンピックや即位などのイベ...
C#

C# Tips | 日付・時間処理:営業日加算

はじめに 「営業日加算」は“ビジネスの締切をコードに落とす技”「3営業日以内に対応」「5営業日後が締切」「翌営業日に処理」――こういう要件を“ちゃんと”満たすには、単純な「日数加算」ではなく「営業日加...
C#

C# Tips | 日付・時間処理:営業日判定

はじめに 「営業日判定」は“締切と期日のリアルさ”を決める心臓部業務システムでよく出てくる「3営業日以内に対応」「翌営業日に処理」「営業日ベースで締切計算」。ここでいう「営業日」が正しく判定できていな...
C#

C# Tips | 日付・時間処理:曜日日本語化

はじめに 「曜日日本語化」は“ユーザーに優しい日付表示”の仕上げ曜日そのものは DateTime.DayOfWeek で簡単に取れますが、そのままだと Tuesday のような英語表記です。業務システ...
C#

C# Tips | 日付・時間処理:曜日取得

はじめに 「曜日取得」は“人間に寄り添う日付表示”の入口日付そのものだけでなく、「それが何曜日か」は業務画面でかなり重要です。勤怠、シフト、予約、カレンダー、締切日…どれも「曜日」が一緒に出ていると、...
C#

C# Tips | 日付・時間処理:年末取得

はじめに 「年末取得」は“年間ロジックのゴール地点”年初が「スタートライン」だとしたら、年末は「ゴールライン」です。年間売上、年間勤怠、年間評価、年間レポート、どれも「この年はどこからどこまでか」 が...
C#

C# Tips | 日付・時間処理:年初取得

はじめに 「年初取得」は“年間ロジックのスタートライン”月初・月末が「月次処理の基準点」だとしたら、年初は「年間処理の基準点」です。例えば、「今年の売上集計」「今年の有給残高」「今年度の評価期間」こう...
C#

C# Tips | 日付・時間処理:月末取得

はじめに 「月末取得」は“締めと集計のゴール地点”月初が「スタート」だとしたら、月末は「ゴール」です。売上の締め、勤怠の締め、請求期間の終わり、サブスクの課金期間の終わり――どれも「この月の月末はどこ...
C#

C# Tips | 日付・時間処理:月初取得

はじめに 「月初取得」は“集計と締め処理のスタート地点”業務システムで「今月分の売上」「今月の勤務時間」「請求書の対象期間」などを扱うとき、必ずと言っていいほど出てくるのが「月初(その月の1日)」です...
C#

C# Tips | 日付・時間処理:日付減算

はじめに 「日付減算」は“差を測る”だけじゃなく“◯日前”も作れる道具日付の「減算」と聞くと、まず思い浮かぶのは「2つの日付の差を取る」ことだと思います。でも実務ではそれだけでなく、「◯日前に戻す」(...
C#

C# Tips | 日付・時間処理:日付加算

はじめに 「日付加算」は“締切・有効期限・リマインド”の土台になる業務システムで「◯日後」「◯ヶ月後」「◯時間後」は、締切、有効期限、リマインド日時、サブスクリプションの更新日など、あらゆるところに出...
C#

C# Tips | 日付・時間処理:日付パース

はじめに 「日付パース」は“文字列を本物の日時に戻す”作業さっきまで「日付フォーマット」でDateTime → 文字列 に変換する話をしました。今度は逆向き、「文字列 → DateTime / Dat...
C#

C# Tips | 日付・時間処理:日付フォーマット

はじめに 「日付フォーマット」は“人間に読める形に整える”最後の仕上げ業務システムでは、DBや内部処理では DateTime / DateTimeOffset のまま扱い、画面・CSV・ログ・帳票など...
C#

C# Tips | 日付・時間処理:ローカル変換

はじめに 「ローカル変換」は“人間にとっての時間に戻す”作業UTC変換が「システムにとって都合のいい時間」にそろえる作業だとしたら、ローカル変換はその逆で、「人間が暮らしているタイムゾーンの時間に戻す...
C#

C# Tips | 日付・時間処理:UTC変換

はじめに 「UTC変換」は“時間のものさしを世界共通にそろえる”作業業務システムで日時を扱うとき、「サーバーのタイムゾーンが違う」「海外リージョンにデプロイする」「他システムと連携する」こういう場面が...
C#

C# Tips | 日付・時間処理:現在日時取得

はじめに 「現在日時取得」は“すべてのログと期限の起点”になる業務システムで「今の日時」は、ほぼどこでも使います。ログのタイムスタンプ、締切チェック、バッチの実行時間、更新日時の保存など、「いつ?」を...
C#

C# Tips | 文字列処理:Unicode正規化

はじめに 「Unicode正規化」は“見た目は同じ文字を、本当に同じにそろえる”作業Unicode正規化は、一言でいうと「見た目は同じなのに、内部的なバイト列が違う文字列を、同じ形にそろえる」処理です...
C#

C# Tips | 文字列処理:Levenshtein距離

はじめに 「Levenshtein距離」は“どれくらい似ているか”を数字で教えてくれるものLevenshtein(レーベンシュタイン)距離は、「ある文字列を別の文字列に変えるために、何回“1文字の挿入...
C#

C# Tips | 文字列処理:曖昧検索

はじめに 「曖昧検索」は“ちょっと間違っていても拾ってあげる”検索業務システムで検索機能を作ると、こんなことが起きがちです。「ユーザーが Yamda とタイプミスしても、本当は Yamada を出した...
C#

C# Tips | 文字列処理:部分一致検索

はじめに 「部分一致検索」は“文字列の中から、手がかりを探す”作業業務システムでは、こういうことをよくやります。商品名に「りんご」が含まれているデータだけを抽出したいログの1行の中に「ERROR」とい...
C#

C# Tips | 文字列処理:文字列比較(大文字無視)

はじめに 「大文字無視の文字列比較」は“人間の感覚に合わせる”ためのテクニック業務システムでは、ユーザー名、コード値、フラグ文字列などを比較するときに、「OK と ok は同じとみなしたい」「Yes ...
C#

C# Tips | 文字列処理:XML圧縮

はじめに 「XML圧縮」は“意味はそのまま、見た目だけ最小化する”ここでいう「XML圧縮」は、GZip などのバイナリ圧縮ではなく、改行・インデント・余計な空白をできるだけ取り除いて、XML文字列を短...
C#

C# Tips | 文字列処理:XML整形

はじめに 「XML整形」は“タグの森に道をつける”作業XMLは、設定ファイル、外部システム連携、古めのWebサービスなどで今でもよく使われますが、そのまま1行でベタッと出てくると、とても読みにくいです...
C#

C# Tips | 文字列処理:JSON圧縮

はじめに 「JSON圧縮」は“意味は変えずに、できるだけ短くする”ことここでいう「JSON圧縮」は、GZipなどのバイナリ圧縮ではなく、「余計な改行・インデント・スペースを削って、JSON文字列を最小...
C#

C# Tips | 文字列処理:JSON整形

はじめに 「JSON整形」は“ぐちゃぐちゃなJSONを、人間が読める形にする”作業APIレスポンス、ログ、設定ファイル——JSONは業務システムのあちこちに出てきますが、そのままだと{"id":1,"...
C#

C# Tips | 文字列処理:URLデコード

はじめに 「URLデコード」は“URL用に変形された文字列を、人間の世界に戻す”処理URLエンコードは、「URLの中で問題になりそうな文字(日本語・スペース・記号など)を、安全な形(%xx や +)に...
C#

C# Tips | 文字列処理:URLエンコード

はじめに 「URLエンコード」は“文字列をURLの世界に適応させる変換”URLエンコードは、「URLの中でそのまま使うと問題が出る文字を、安全な形に変換する」処理です。日本語、スペース、記号類などをそ...
C#

C# Tips | 文字列処理:Base64デコード

はじめに 「Base64デコード」は“梱包されたデータを元に戻す”作業前回の「Base64エンコード」は、バイナリや文字列を「壊れにくい文字列」に梱包する話でした。Base64デコードは、その逆です。...
C#

C# Tips | 文字列処理:Base64エンコード

はじめに 「Base64エンコード」は“中身を壊さずに文字列として運ぶための梱包”Base64エンコードは、「バイナリデータ(生のバイト列)を、安全に文字列として扱える形に変換する仕組み」です。メール...
C#

C# Tips | 文字列処理:SHA256生成

はじめに 「SHA256生成」は“文字列に指紋をつける”行為SHA256 は、どんな長さのデータでも「256ビット(32バイト)の固定長のハッシュ値」に変換する仕組みです。イメージとしては、「中身は見...
C#

C# Tips | 文字列処理:文字列ハッシュ化

はじめに 「文字列ハッシュ化」は“中身を見せずに、同じかどうかだけ知る”技文字列ハッシュ化は、一言でいうと、「文字列の中身を、一定長の“指紋”に変換すること」です。元の文字列がどれだけ長くても、ハッシ...
C#

C# Tips | 文字列処理:文字頻度カウント

はじめに 「文字頻度カウント」は“テキストのクセを数字で見る”道具文字頻度カウントは、「この文字列の中で、どの文字が何回出てくるか」を数える処理です。一見お勉強っぽいテーマですが、業務でもログ解析、入...
C#

C# Tips | 文字列処理:文字列反転

はじめに 「文字列反転」は“ただのお遊び”で終わらせるには惜しいテクニック「文字列を逆順にする」——いかにも練習問題っぽいテーマですが、実務でも意外と出番があります。ログやIDの一部をマスクして見せた...
C#

C# Tips | 文字列処理:指定行取得

はじめに 「指定行取得」は“長いテキストから、ピンポイントで1行だけ抜き出す”技ログファイル、設定ファイル、外部システムからのテキスト——業務では「長いテキストの中から、n行目だけ欲しい」という場面が...
C#

C# Tips | 文字列処理:行分割

はじめに 「行分割」は“テキストを“1行ずつの粒”にする基本技”長いテキストを扱うとき、「1行ずつ処理したい」「行番号を付けたい」「空行をスキップしたい」といったニーズは、業務システムでも頻出です。そ...
C#

C# Tips | 文字列処理:改行コード統一

はじめに 「改行コード統一」は“見えない差異でバグらないための下ごしらえ”業務でテキストを扱っていると、「見た目は同じなのに、なぜか比較で不一致になる」「CSVがうまく分割できない」みたいな、地味だけ...
C#

C# Tips | 文字列処理:SQLインジェクション対策

はじめに 「SQLインジェクション対策」は“文字列をいじる話ではなく、SQLの組み立て方の話”「文字列処理のユーティリティ」と聞くと、「シングルクォートを2つに置き換えるエスケープ関数を作ればいいのか...
C#

C# Tips | 文字列処理:CSVエスケープ

はじめに 「CSVエスケープ」は“カンマや改行を、1セルの中に閉じ込める”技業務で CSV を扱うとき、いちばんよくハマるのが、「値の中にカンマや改行が入っていて、列がズレる」という問題です。例えば、...
C#

C# Tips | 文字列処理:HTMLアンエスケープ

はじめに 「HTMLアンエスケープ」は“記号に戻して、元のテキストを取り出す”技さっきの「HTMLエスケープ」は、< や > を < や > に変えて「安全な文字列」にする処理でした。HT...
C#

C# Tips | 文字列処理:HTMLエスケープ

はじめに 「HTMLエスケープ」は“文字列をHTMLとして誤解させないための防御”Web画面を作るとき、ユーザーが入力した文字列をそのままHTMLに埋め込むと、とても危険です。なぜなら、<script...
C#

C# Tips | 文字列処理:省略文字列生成

はじめに 「省略文字列生成」は“長すぎる情報を、いい感じに切る”技業務システムを作っていると、「全部は見せられないけど、雰囲気は伝えたい」という場面がよく出てきます。ログに長いメッセージを全部出すと読...
C#

C# Tips | 文字列処理:パディング(右)

はじめに 「右パディング」は“枠を決めて、左にそろえて並べる”技左パディングが「右寄せ」だとしたら、右パディングはその逆で「左寄せ」をきれいにそろえるためのテクニックです。業務システムだと、例えばこん...
C#

C# Tips | 文字列処理:パディング(左)

はじめに 「左パディング」は“桁をそろえて、きれいに並べる”技業務システムでは、こんな表示やデータ形式がよく出てきます。1 → 001 にしたい(3桁でゼロ埋め)A → A にしたい(4文字幅で右寄せ...
C#

C# Tips | 文字列処理:ランダム文字列生成

はじめに 「ランダム文字列生成」は“それっぽいIDやトークンを安全に作る”技業務システムで「ランダム文字列」が欲しくなる場面はたくさんあります。一時パスワードメール確認用トークン招待コードファイル名の...
C#

C# Tips | 文字列処理:UUID生成

はじめに 「UUID生成」は“かぶらないIDを雑に、でも安全に作る”技業務システムを作っていると、ほぼ必ず出てくるのが「一意なIDが欲しい」という場面です。注文ID、トランザクションID、ファイル名、...
C#

C# Tips | 文字列処理:電話番号検証

はじめに 「電話番号検証」は“ぐちゃっとした入力を、安全な数字列に整える”仕事電話番号入力って、郵便番号以上に“ゆらぎ”が激しいです。03-1234-56780901234567803−1234−56...
C#

C# Tips | 文字列処理:郵便番号検証

はじめに 「郵便番号検証」は“ゆらぎを受け止めて、きっちり7桁にそろえる”仕事郵便番号入力って、一見シンプルに見えますよね。「7桁の数字でしょ?」で終わりそうですが、実務ではそうはいきません。「123...
C#

C# Tips | 文字列処理:URL検証

はじめに 「URL検証」は“危なそうな文字列を入口で止めるフィルタ”業務システムで URL を扱う場面は多いですよね。ユーザーが入力したホームページURL外部サービスのコールバックURL管理画面で設定...
C#

C# Tips | 文字列処理:メールアドレス検証

はじめに 「メールアドレス検証」は“現実と割り切りのバランスを取る技”業務システムでほぼ確実に出てくるのが「メールアドレス入力欄」です。ここで悩ましいのが、「どこまで厳密にチェックするか?」です。RF...
C#

C# Tips | 文字列処理:日本語判定

はじめに 「日本語判定」は“文字列の中身の“顔ぶれ”を見分ける技業務システムだと、こんな要件がよく出てきます。氏名は日本語で入力してほしい(漢字・ひらがな・カタカナ)ログインIDは日本語禁止(英数字の...
C#

C# Tips | 文字列処理:英字のみ抽出

はじめに 「英字のみ抽出」は“コードやIDからアルファベットの芯だけを抜き出す”技業務システムでは、こんな文字列がよく出てきます。"UserID: AB123""商品コード: JP-2025-001"...
C#

C# Tips | 文字列処理:数字のみ抽出

はじめに 「数字のみ抽出」は“文字列から数値の芯だけを取り出す”技業務システムでは、こういう文字列がよく出てきます。"ID: 12345""注文No=AB-2025-00123""TEL 03-123...
C#

C# Tips | 文字列処理:正規表現置換

はじめに 「正規表現置換」は“パターンで探して、一気に書き換える”技一致判定は「合っているかどうか」、抽出は「取り出す」でした。正規表現置換は、そのさらに一歩先——「合っているところを、別の形に書き換...
C#

C# Tips | 文字列処理:正規表現抽出

はじめに 「正規表現抽出」は“文字列の中から欲しいところだけをすくい取る”技一致判定(IsMatch)は「ルールに合っているか?」を見るだけでしたが、業務ではそれだけでは足りません。ログの 1 行から...
C#

C# Tips | 文字列処理:正規表現一致判定

はじめに 「正規表現一致判定」は“文字列ルールをコードにする道具”業務システムでは、「この文字列はメールアドレス形式か?」「このコードは英数字だけか?」「この入力は3桁の数字か?」といった“ルールチェ...
C#

C# Tips | 文字列処理:文字列結合

はじめに 「文字列結合」は“バラした情報を一つの形にまとめる”技さっきまで「文字列分割」でバラす話をしてきましたが、業務ではその逆——「バラバラの情報を 1 本の文字列にまとめる」場面も同じくらい多い...
C#

C# Tips | 文字列処理:文字列分割

はじめに 「文字列分割」は“バラしてから意味をつける”ための基本技業務システムでは、「1本の文字列の中に、複数の値が詰め込まれている」ことがよくあります。CSV の 1 行、区切り文字付きの設定値、ユ...
C#

C# Tips | 文字列処理:ケバブケース変換

はじめに 「ケバブケース変換」は“フロントエンド世界との共通語”C# の世界では UserName(PascalCase)や userName(camelCase)が主流ですが、フロントエンドや一部の...
C#

C# Tips | 文字列処理:スネークケース変換

はじめに 「スネークケース変換」は“別世界の命名ルールをつなぐアダプタ”C# の世界では UserName や OrderId のような PascalCase/camelCase が主流ですが、業務で...
C#

C# Tips | 文字列処理:キャメルケース変換

はじめに 「キャメルケース変換」は“名前をそろえるためのルールエンジン”業務で C# を書いていると、「名前の書き方」をそろえたくなる場面がたくさん出てきます。JSON のプロパティ名、API のパラ...
C#

C# Tips | 文字列処理:小文字変換

はじめに 「小文字変換」は“ゆるく受け入れて、きっちり比べる”ための道具大文字変換と同じくらい、業務コードでよく使うのが「小文字変換(Lower)」です。特に、こんな場面で出てきます。ユーザー入力を小...
C#

C# Tips | 文字列処理:半角→全角

はじめに 「半角→全角」は“見た目とフォーマットをそろえるための技”さっきの「全角→半角」は、検索や比較を安定させるための前処理でした。一方で「半角→全角」は、どちらかというと「見た目」と「フォーマッ...
C#

C# Tips | 文字列処理:全角→半角

はじめに なぜ「全角→半角」が業務でこんなに大事なのか日本語の業務システムでは、「見た目は同じなのに、文字コードが違うせいで一致しない」という事故が本当に多いです。「A」と「A」、「1」と「1」、「@...
C#

C# Tips | 文字列処理:空白トリム

はじめに 「空白トリム」は“バグの温床”を一気に減らすお掃除スキル業務システムで文字列を扱うとき、地味だけどめちゃくちゃ効くのが「空白トリム」です。ユーザー入力、CSV、設定ファイル、外部API――そ...
C#

C# Tips | 文字列処理:null安全文字列

はじめに 「null安全文字列」は“落ちないコード”への第一歩C# で業務コードを書いていると、かなりの頻度で出てくる例外があります。NullReferenceException――いわゆる「ヌルポ」...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル復元

はじめに 「ファイル復元」は“やらかした後に助けてくれる最後の味方”バックアップを取るだけでは、まだ片手落ちです。本当に大事なのは、「壊したあとに、元に戻せること」です。設定ファイルを上書きしてアプリ...
C#

C# Tips | ファイル・ディレクトリ操作:世代管理バックアップ

はじめに 「世代管理バックアップ」は“時間を巻き戻すための仕組み”バックアップを「とりあえずコピーしておく」だけで終わらせると、すぐにこうなります。バックアップフォルダがファイルだらけでカオスになる。...
C#

C# Tips | ファイル・ディレクトリ操作:バックアップ作成

はじめに 「バックアップ作成」は“事故前提”でコードを書く技術業務システムでファイルを扱うなら、「バックアップをどう残すか」は避けて通れません。人が操作をミスることもあるし、プログラムがバグることもあ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル名重複回避

はじめに なぜ「ファイル名重複回避」が必要になるのか業務でファイルを扱っていると、かなりの頻度でこういう状況に出会います。同じフォルダに同名ファイルがすでに存在している。ユーザーが同じ名前で何度もエク...
C#

C# Tips | ファイル・ディレクトリ操作:禁則文字除去

はじめに 「禁則文字除去」は“事故る前の最後のガード”業務でファイル名やフォルダ名を「プログラム側で決める」こと、よくありますよね。ユーザーが入力したタイトルをそのままファイル名にしたい。日付やIDを...
C#

C# Tips | ファイル・ディレクトリ操作:パス安全化

はじめに 「パス安全化」は“ファイルを触る前の身だしなみ”業務でファイルを扱うコードを書くとき、本当によく出てくるのが「パス文字列」です。ユーザー入力、設定ファイル、外部システムから渡される値――それ...
C#

C# Tips | ファイル・ディレクトリ操作:ZIP解凍

はじめに 「ZIP解凍」ができると“受け取ったファイルをさばける人”になる業務だと、相手から渡されるファイルがそのままではなく、ZIP で固められていることが本当に多いです。日次バッチの結果、帳票一式...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル圧縮(ZIP)

はじめに 「ZIP を扱える」と業務ツールの格が一段上がる業務でよくあるシーンです。複数ファイルを ZIP にまとめてメールで送りたい。バックアップを ZIP で固めて日付ごとに保存したい。外部システ...
C#

C# Tips | ファイル・ディレクトリ操作:大容量ファイル逐次読み込み

はじめに 「全部読み込む」はもう卒業しよう大きなログファイル、巨大な CSV、数 GB のテキスト。こういうファイルを相手にするときに、File.ReadAllText や File.ReadAllL...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル監視(FileSystemWatcher)

はじめに 「ファイル監視」ができると“自動処理”の世界が一気に広がる業務システムを書いていると、こんな要望がよく出てきます。フォルダにファイルが置かれたら、自動で取り込んで処理したい。設定ファイルが書...
C#

C# Tips | ファイル・ディレクトリ操作:ログローテーション

はじめに なぜ「ログローテーション」が必要になるのか業務システムを真面目に運用し始めると、必ずと言っていいほど「ログファイルがデカくなりすぎる問題」にぶつかります。1つのログファイルに延々と書き続ける...
C#

C# Tips | ファイル・ディレクトリ操作:TSV対応CSV

はじめに 「TSV対応CSV」とは“区切り文字を意識できる人”になること業務でファイル連携をしていると、こういうことが起きます。CSV ください、と言われたのに、実際に渡されるのはタブ区切り(TSV)...
C#

C# Tips | ファイル・ディレクトリ操作:CSV書き込み

はじめに 「CSV書き込み」ができると“外部連携の入口”が開くCSV 読み込みが「外部からデータをもらう入口」だとしたら、CSV 書き込みは「外部にデータを渡す出口」です。集計結果を CSV で出力し...
C#

C# Tips | ファイル・ディレクトリ操作:CSV読み込み

はじめに 「CSV読み込み」がちゃんと書けると一気に“業務っぽく”なる業務システムで一番よく出てくるファイル形式、それが CSV です。売上データ、マスタデータ、ログのエクスポート、外部システムとの連...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル結合

はじめに 「分割したなら、いつか必ず結合する」前回は「ファイル分割」でしたね。大きすぎるファイルを扱いやすくするために分けたなら、どこかのタイミングで「元に戻したい」「まとめて扱いたい」というニーズが...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル分割

はじめに 「ファイル分割」は“逃げ”ではなく戦略業務をやっていると、だいたい一度はこうなります。ログがバカみたいに大きくなって、テキストエディタで開けない。外部システムから「1 ファイル 10MB ま...
C#

C# Tips | ファイル・ディレクトリ操作:テキスト一括置換

はじめに 「テキスト一括置換」は業務の“地味だけど超重要”作業業務システムを書いていると、こんなことがよく起きます。古いコードや設定ファイルのパスを一気に変えたい。ログファイルや CSV の中の特定の...
C#

C# Tips | ファイル・ディレクトリ操作:BOM付きUTF-8保存

はじめに なぜ「BOM付きUTF-8保存」が業務で大事なのか業務システムだと、こんな場面がよく出てきます。外部システムから「UTF-8(BOM付き)で送ってください」と仕様で指定されている。Excel...
C#

C# Tips | ファイル・ディレクトリ操作:ファイルエンコーディング判定

はじめに 「エンコーディング判定」が分からないとハマる世界業務でテキストファイル(CSV、ログ、設定ファイルなど)を扱うとき、ほぼ必ず出てくるのが「このファイル、何のエンコーディングで書かれているの?...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル文字数カウント

はじめに 「文字数カウント」は“なんとなく”で書くと危ない「ファイルの文字数を数える」――これも一見シンプルですが、実務では意外と奥が深いです。文字数でバリデーションしたい(例:1 万文字を超える説明...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル行数カウント

はじめに 「行数を数える」だけなのに、なぜユーティリティにするのか「ファイルの行数カウント」って、一見すごく地味ですよね。でも業務では、ログ解析、CSV のレコード数チェック、インポート前の件数確認、...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル差分検出

はじめに 「違うかどうか」から一歩進んで「どこが違うか」前回の「ファイル内容比較」は、「同じか」「違うか」を true / false で判定する話でした。でも、業務ではそれだけでは足りない場面がよく...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル内容比較

はじめに 「同じファイルか?」は業務でめちゃくちゃ重要業務システムを書いていると、こんなことを知りたくなる場面がよくあります。バックアップ前:「前回のバックアップと中身が同じなら、コピーをスキップした...
C#

C# Tips | ファイル・ディレクトリ操作:ファイルロック判定

はじめに なぜ「ファイルロック判定」が業務で重要なのか業務システムでは、「今このファイル、誰かが開いていないかな?」を気にしなければいけない場面がよくあります。たとえば、次のような状況です。他のプロセ...
C#

C# Tips | ファイル・ディレクトリ操作:一時フォルダ作成

はじめに 一時フォルダは「作業用の安全な砂場」一時ファイルと同じくらい、業務でよく使うのが「一時フォルダ」です。大きな ZIP を展開して中身を処理するとき、複数ファイルを一時的に並べてからまとめてア...
C#

C# Tips | ファイル・ディレクトリ操作:一時ファイル作成

はじめに 一時ファイルは「使い捨ての作業机」業務システムを書いていると、「ちょっとだけデータを置いておきたい」場面がよく出てきます。たとえば、大きなファイルを分割して処理するときの中間結果、ダウンロー...
C#

C# Tips | ファイル・ディレクトリ操作:パス正規化

はじめに 「パス正規化」って何をすること?「パス正規化」という言葉、ちょっと堅いですよね。でもやっていることはシンプルで、「バラバラな書き方のパスを、同じルールで整える」ことです。同じ場所を指している...
C#

C# Tips | ファイル・ディレクトリ操作:パス結合

はじめに なぜ「パス結合」が業務でめちゃくちゃ大事なのかファイルやディレクトリを扱うコードを書くとき、ほぼ必ず出てくるのが「パスの結合」です。たとえば「ログフォルダのパス」と「ファイル名」からフルパス...
C#

C# Tips | ファイル・ディレクトリ操作:絶対パス→相対パス

はじめに なぜ「絶対パス→相対パス」が必要になるのかさっきまでは「相対パス → 絶対パス」をやりましたが、現場ではその逆、「絶対パス → 相対パス」に変換したい場面もかなり多いです。例えばこんなケース...
C#

C# Tips | ファイル・ディレクトリ操作:相対パス→絶対パス

はじめに なぜ「相対パス→絶対パス」が業務で重要なのか業務システムでは、設定ファイルやログ出力先などを「相対パス」で書くことがよくあります。たとえば logs\app.log や ..\config\...
C#

C# Tips | ファイル・ディレクトリ操作:ディレクトリ一覧取得

はじめに なぜ「ディレクトリ一覧取得」が業務で重要なのか業務システムでは、ファイルだけでなく「フォルダ(ディレクトリ)」を扱う場面が非常に多いです。たとえば次のようなケースです。日付ごとにフォルダが作...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル一覧取得

はじめに なぜ「ファイル一覧取得」が業務の入り口になるのか業務システムでファイルを扱う処理は、ほぼ必ず「まず対象フォルダのファイル一覧を取る」ところから始まります。たとえば「このフォルダの CSV を...
C#

C# Tips | ファイル・ディレクトリ操作:指定拡張子検索

はじめに なぜ「指定拡張子検索」が業務で重要なのか業務システムでは、「.csv だけ集めてバッチ処理したい」「.log だけを圧縮したい」「.bak だけをバックアップフォルダに移動したい」といった、...
C#

C# Tips | ファイル・ディレクトリ操作:空フォルダ削除

はじめに なぜ「空フォルダ削除」が業務で役に立つのか業務システムでファイルを扱っていると、ログやバックアップ、インポート・エクスポート用の一時フォルダなどがどんどん増えていきます。ファイルは削除してい...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル属性変更

はじめに 「ファイル属性変更」ができると何が嬉しいのか業務でファイルを扱っていると、こんなことが起きます。「ユーザーがコピーしてきたファイルが読み取り専用で、削除できない」「ログファイルを隠しファイル...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル読み取り専用判定

はじめに なぜ「読み取り専用判定」が業務で効いてくるのか業務システムでファイルを扱うとき、「このファイル、書き込んでいいのか?」「上書きしようとしたら失敗した」「削除できないと思ったら読み取り専用だっ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル更新日時取得

はじめに なぜ「ファイル更新日時取得」が業務で重要なのか業務システムでは、「前回処理してから更新されたファイルだけを再処理したい」「一定期間更新されていないログを削除したい」「外部システムからのファイ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル作成日時取得

はじめに なぜ「ファイル作成日時取得」が業務で重要なのか業務システムでは、「一番新しいファイルだけ処理したい」「一定期間より古いファイルを削除したい」「いつ受信したファイルなのかをログに残したい」とい...
C#

C# Tips | ファイル・ディレクトリ操作:ファイルサイズ取得

はじめに なぜ「ファイルサイズ取得」が業務で重要なのか業務システムでは、「受信したファイルが想定サイズ以上かチェックする」「空ファイル(サイズ 0)をエラーとして弾く」「バックアップやログの容量を集計...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル名一括変更

はじめに なぜ「ファイル名一括変更」が業務で効くのか業務システムや日々の運用では、「毎日出力されるファイルに連番を振りたい」「人が付けたバラバラな名前を、システムで扱いやすい規則的な名前に揃えたい」「...
C#

C# Tips | ファイル・ディレクトリ操作:拡張子変更

はじめに なぜ「拡張子変更」が業務で役に立つのか業務システムでは、「処理前は .tmp として保存しておき、処理が成功したら .csv にリネームする」「受信したファイルを .dat から .bak ...
C#

C# Tips | ファイル・ディレクトリ操作:再帰的フォルダ削除

はじめに なぜ「再帰的フォルダ削除」は危険で、だからこそ重要なのか業務システムでは、「一時作業フォルダを丸ごと消す」「古いバックアップフォルダをまとめて削除する」「処理失敗時に作業領域をクリーンアップ...
C#

C# Tips | ファイル・ディレクトリ操作:再帰的フォルダコピー

はじめに なぜ「再帰的フォルダコピー」が業務で重要なのか業務システムでは、「あるフォルダ一式を丸ごとバックアップしたい」「テンプレートフォルダをそっくり複製して新しい案件用フォルダを作りたい」「旧サー...
C#

C# Tips | ファイル・ディレクトリ操作:ディレクトリ削除

はじめに なぜ「ディレクトリ削除」は特に慎重さが必要なのか業務システムでは、古いバックアップフォルダを消す、一時作業用フォルダを片付ける、処理に失敗した作業領域をクリーンアップするなど、「フォルダごと...
C#

C# Tips | ファイル・ディレクトリ操作:ディレクトリ作成

はじめに なぜ「ディレクトリ作成」が業務で重要なのか業務システムでは、ログ出力フォルダ、バックアップフォルダ、インポート用フォルダ、エクスポート用フォルダなど、「フォルダが存在していること」を前提にし...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル削除

はじめに なぜ「ファイル削除」は慎重さが必要なのか業務システムでは、古いログを消す、一時ファイルを片付ける、処理に失敗した中間ファイルを削除するなど、「ファイルを消す」処理が必ず出てきます。ただし、コ...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル移動

はじめに なぜ「ファイル移動」が業務で重要なのか業務システムでは、「処理前フォルダから処理済みフォルダへ移動する」「受信フォルダからアーカイブフォルダへ退避する」「一時フォルダから本番フォルダへ本番反...
C#

C# Tips | ファイル・ディレクトリ操作:ファイルコピー

はじめに なぜ「ファイルコピー」が業務で重要なのか業務システムでは、バックアップを取る、別フォルダにエクスポートする、他システム連携用の受け渡しフォルダにコピーする、といった「ファイルを別の場所に複製...
C#

C# Tips | ファイル・ディレクトリ操作:ディレクトリ存在チェック

はじめに なぜ「ディレクトリ存在チェック」が重要なのか業務システムでは、ログ出力フォルダ、バックアップフォルダ、インポート用フォルダ、エクスポート用フォルダなど、「フォルダが存在すること」を前提にした...
C#

C# Tips | ファイル・ディレクトリ操作:ファイル存在チェック

はじめに ファイル「存在チェック」はなぜ大事か業務システムでは、「このファイルがある前提」で処理を書いてしまうと、現場で簡単に事故が起きます。たとえば「毎朝、前日の売上 CSV を読み込むバッチ」が、...
スポンサーリンク
タイトルとURLをコピーしました