C#樹林– category –
プログラミング言語のC#を勉強したときのノートです。
-
C#樹林
【C#】List
を宣言と同時に初期化する方法(コレクション初期化子) List<T>の初期化 System.Collections.Generic.List<T>は、C#において最もよく使われる動的サイズのコレクション(データの集まり)です。 従来、List<T>に初期データを追加するには、インスタンスを作成した後にAddメソッドを繰り返し呼... -
C#樹林
【C#】List
(ジェネリックリスト)の基本的な使い方:配列との違いとAdd, Remove, Count List<T> とは何か? なぜ配列より便利か? C#で複数のデータをまとめて扱う最も基本的な方法は「配列(T[])」です。しかし、配列には「一度作成するとサイズ(要素数)を変更できない」という大きな制約があります。 // 3個の要素しか入らない配列 ... -
C#樹林
【C#】ジャグ配列(配列の配列)の基本的な使い方:初期化とループ処理
ジャグ配列(配列の配列)とは C#には、2次元の表形式データを扱う配列として、「2次元配列(int[,])」と「ジャグ配列(int[][])」の2種類があります。 2次元配列(int[,])が、常に行と列の数が揃った「格子状(グリッド)」のデータ構造であるのに対し... -
C#樹林
【C#】2次元配列(多次元配列)の基本的な使い方:初期化とアクセス
2次元配列とは C#の配列(Array)は、通常 int[] や string[] のような1次元(直線状)のデータ構造を指します。しかし、Excelのシート、ゲームのマップ、座席表、画像データ(ピクセルグリッド)のように、**行(Row)と列(Column)**を持つ「格子状」ま... -
C#樹林
【C#】Array.SortとComparison
で配列をカスタム順序(文字列長など)で並べ替える方法 Array.Sortの標準動作とその限界 Array.Sort(array)メソッドは、配列の要素を「昇順」に並べ替えるための非常に便利な静的メソッドです。 int型なら数値の小さい順(1, 5, 10) string型なら辞書順("A", "B", "C") しかし、もし「文字列を長さの短い順に... -
C#樹林
【C#】Array.Sortメソッドで配列の要素を昇順に並べ替える(ソートする)方法
配列の「並べ替え(ソート)」 C#で配列(Array)に格納されたデータを扱う際、それらの要素を特定の順序、特に「昇順」(小さいものから大きいものへ、またはアルファベット順)に並べ替えたい(ソートしたい)という要求は非常に一般的です。 例えば、in... -
C#樹林
【C#】Array.Reverseメソッドで配列の要素をその場で逆順にする方法
配列の順序を反転させたい時 C#で配列(Array)を扱う際、コレクションに格納されている要素の順序を完全に逆にしたい場合があります。例えば、時系列データの順序(古い順 -> 新しい順)を反転させたり、ソート(並べ替え)結果を昇順から降順に変更し... -
C#樹林
【C#】Array.Fillメソッドで配列の全要素を特定の値で初期化する方法
配列の初期化とArray.Fill C#でnew int[10]のように配列を宣言すると、その配列の各要素は自動的にその型のデフォルト値(intなら0、boolならfalse、stringなどの参照型ならnull)で初期化されます。 しかし、プログラムのロジック上、「配列のすべての要... -
C#樹林
【C#】foreachループで配列やListの全要素を順番に処理する方法
コレクションの「反復処理」 C#で配列(string[]など)やList<T>といった「コレクション」(データの集まり)を扱う際、その中身(要素)を先頭から順に一つずつ取り出して、何らかの処理を行いたい(例: 画面に表示する、合計値を計算する)という... -
C#樹林
【C#】配列(Array)の基本的な使い方:宣言、初期化、アクセスの方法
配列(Array)とは C#プログラミングにおいて、「配列」は、同じデータ型(例: int型、string型など)の複数の値を、連続したメモリ領域に格納するための最も基本的なデータ構造です。 配列を使用することで、個別の変数(score1, score2, score3...)を大... -
C#樹林
【C#】DateTime.ToStringでカルチャ(CultureInfo)を指定し、日時書式を制御する方法
日時書式と「カルチャ(CultureInfo)」 C#でDateTime.ToString("d")やDateTime.ToString("D")といった標準の書式指定子を使用すると、日付文字列を簡単に生成できます。 しかし、これらの標準書式指定子の出力結果は、プログラムを実行しているOSの「現在... -
C#樹林
【C#】DateTimeを和暦(元号)文字列に変換する方法(CultureInfoとggyy書式)
西暦から和暦(元号)文字列への変換 C#で日付を扱うDateTimeオブジェクトは、標準ではグレゴリオ暦(西暦)に基づいています。しかし、日本の業務アプリケーションや帳票印刷などでは、"2025/11/20"のような西暦表記ではなく、"令和7年11月20日"といった... -
C#樹林
【C#】和暦の元号インデックス(序数)を元号名(”令和”など)に変換する方法
和暦(元号)のインデックスと名称 C#で和暦(日本の元号)を扱う際、System.Globalization.JapaneseCalendarクラスのGetEra(DateTime date)メソッドを使用すると、その日付が属する元号を**数値のインデックス(序数)**として取得できます。 例えば、Dat... -
C#樹林
【C#】西暦(DateTime)を和暦の元号と年に変換する方法
西暦から和暦(元号)への変換 C#で日付を扱うDateTime構造体は、標準でグレゴリオ暦(西暦)を使用しています。しかし、日本のアプリケーションでは、"2025/11/20"のような西暦を、"令和7年"のような和暦(元号と年)の形式で扱いたい場合があります。 Sy... -
C#樹林
【C#】DateTimeの書式指定:ToStringで日付と時刻を自由にフォーマットする方法
日付と時刻の「書式(フォーマット)」 C#でDateTimeオブジェクト(特定の日時)を扱う際、そのままToString()で出力すると、実行環境のOS設定(カルチャ)に依存した標準的な文字列(例: 2025/11/20 14:30)が返されます。 しかし、ログ出力、API連携、UI... -
C#樹林
【C#】文字列をDateTimeに安全に変換するTryParseとカルチャ(和暦)の扱い
文字列からDateTimeへの変換 ユーザー入力、APIレスポンス、ファイルからの読み込みなど、C#プログラムがstring(文字列)型で日付や時刻(例: "2025/11/20")を受け取るケースは非常に多いです。これらの文字列をDateTimeオブジェクトとして扱えなければ... -
C#樹林
【C#】2つのDateTimeの差(期間)を求める方法とTimeSpanの活用
日付や時間の「差」を計算する C#で日付や時刻を扱う際、「イベントの開始時刻から終了時刻までの経過時間」や、「ある日から別の日付までの残り日数」など、2つのDateTime(日時)の「差(間隔)」を計算したい場面は非常に多くあります。 DateTime構造体... -
C#樹林
【C#】DateTime.DaysInMonthで指定した月の日数(月末日)を取得する方法
指定した月の日数(月末日)の取得 C#でカレンダー機能や日付ベースの集計処理を実装する際、「指定した年・月が、何日まで存在するのか」(28日、29日、30日、31日のどれか)という情報が必要になることがあります。 特に2月は、うるう年(閏年)かどうか... -
C#樹林
【C#】DateTime.DayOfYearプロパティで年間積算日(通日)を取得する方法
年間積算日(通日)とは C#で日付処理を行う際、特定の日付が「その年の1月1日から数えて何日目か」を知りたい場合があります。この値を「年間積算日(通日)」または「Day of the Year」と呼びます。 例えば、1月1日は「1」日目、2月1日は「32」日目(1月... -
C#樹林
【C#】DateTime.IsLeapYearでうるう年(閏年)を判定する方法
うるう年(閏年)の判定 C#でカレンダー処理や日付計算を行う際、特定の年が「うるう年(閏年)」であるかどうか(2月29日が存在するかどうか)を判定する必要がある場合があります。 うるう年の判定ロジック(4で割り切れる年はうるう年だが、100で割り切... -
C#樹林
【C#】DateTimeの比較:2つの日付の「前後」と「等価」を判定する方法
DateTime(日時)の比較 C#で日付や時刻データを扱う際、2つのDateTimeオブジェクトの「どちらが新しい(未来)か、古い(過去)か」、「完全に同じ日時か」を比較する必要が頻繁に生じます。 例えば、イベントの開始時刻と終了時刻の前後関係を確認したり... -
C#樹林
【C#】DateTime.AddMonths:Nヶ月後・Nヶ月前を計算する方法と月末の注意点
月単位の日付計算 C#で日付を扱う際、「N日後」を計算するAddDaysと同様に、「Nヶ月後」や「Nヶ月前」を計算したい場面は非常に多くあります。例えば、サブスクリプションの更新日(1ヶ月後)や、ローンの支払いスケジュール(6ヶ月前)などを算出する場合... -
C#樹林
【C#】DateTime.AddDaysでN日後・N日前の日付を計算する方法
日付の加算・減算 C#で日付データを扱う際、「特定の基準日からN日後の日付を求めたい」(例: 登録日から30日後の有効期限)や、「N日前の日付を計算したい」(例: 本日から7日前の日付)といった日付計算は非常に一般的な処理です。 DateTime構造体は、こ... -
C#樹林
【C#】DateTime.DayOfWeekプロパティで曜日を判定する方法 (Sunday, Monday…)
DateTimeから曜日を取得する C#で日付データを扱う際、その日付が「何曜日」であるかに基づいて処理を分岐させたいケースは非常に一般的です。例えば、「土曜日または日曜日の場合は週末料金を適用する」や、「月曜日の場合は週次レポートを作成する」とい... -
C#樹林
【C#】DateTimeから年・月・日・時・分・秒を個別に取得するプロパティ一覧
DateTimeオブジェクトと日時要素 C#においてDateTime構造体は、日付(2025年11月13日)と時刻(15時30分45秒)を一つのオブジェクトとして保持しています。 プログラムを開発していると、このDateTimeオブジェクト全体としてではなく、「月だけを取得して... -
C#樹林
【C#】現在の日付・時刻を取得する:DateTime.Now, Today, UtcNowの正しい使い分け
現在日時の取得 C#でアプリケーションを開発する際、ログのタイムスタンプ、データの作成日時、処理の実行時刻など、「現在の日付」や「現在の時刻」を取得する必要がある場面は非常に多くあります。 .NETのSystem名前空間には、日時を扱うための中心的な... -
C#樹林
【C#】カルチャに依存しない文字列比較:StringComparison.Ordinal の重要性
文字列比較の落とし穴:「カルチャ」依存 C#で2つの文字列を比較する際、== 演算子や引数なしの Equals() メソッドを使うのが最も簡単です。 string input = "windows"; string constant = "WINDOWS"; bool isEqual = (input == constant); // false bool ... -
C#樹林
【C#】サロゲートペア・絵文字を正しく扱う:StringInfoで「テキスト要素」を操作する
string.Lengthが「正しくない」時 C#において、string型の.Lengthプロパティは、その文字列に含まれるchar(16ビット文字)の数を返します。また、foreach (char c in str)ループは、char単位で文字を処理します。 ほとんどの英数字や基本的な日本語では、... -
C#樹林
【C#】文字列とbyte配列の相互変換:Encoding (UTF-8) のGetBytes / GetString の使い方
なぜ文字列とbyte配列の変換が必要か? C#において、string型(文字列)は人間が読み書きするためのテキストデータ("Hello"など)を扱います。一方で、ファイルへの保存、ネットワークを通じたデータ送信、API連携、暗号化処理など、コンピュータがデータ... -
C#樹林
【C#】文字列と文字配列(char[])の相互変換:ToCharArrayとnew String
文字列と文字配列(char[]) C#において、string(文字列)型は「不変(Immutable)」です。つまり、一度作成された文字列オブジェクトの"ABC"という中身を、"ADC"のように一部分だけ変更することはできません。 一方で、char[](文字の配列)は「可変(Mu...