C#樹林– category –
プログラミング言語のC#を勉強したときのノートです。
-
C#樹林
【C#】HashSet
の集合演算:UnionWith, IntersectWith, ExceptWith の使い方 HashSet<T>と集合演算 HashSet<T>は、重複しない要素を高速に管理(追加、削除、検索)できるC#のコレクションです。 HashSet<T>の真の強力さは、AddやContainsといった基本的な操作だけでなく、数学的な「集合演算」を非常に効率的に実... -
C#樹林
【C#】HashSet
の基本:重複しない要素を高速に管理するコレクション HashSet<T>とは何か? C#のSystem.Collections.Generic名前空間には、List<T>やDictionary<TKey, TValue>といった便利なコレクションが用意されています。その中でもHashSet<T>は、ユニークな(重複しない)要素を管理することに... -
C#樹林
【C#】DictionaryのKeysプロパティですべてのキーを順に処理する方法
Dictionaryとキー(Key) Dictionary<TKey, TValue>は、C#においてキー(Key)と値(Value)をペアで管理するコレクションです。foreachループでDictionary自体を処理すると、KeyValuePair<TKey, TValue>(キーと値の両方を含むオブジェクト)... -
C#樹林
【C#】Dictionary<TKey, TValue>の基本:キーと値のペアを扱うコレクション
Dictionary<TKey, TValue> とは C#においてDictionary<TKey, TValue>は、**キー(Key)と値(Value)**のペアをセットで格納するコレクションです。 List<T>がインデックス(0, 1, 2...)で要素を管理するのに対し、Dictionaryは"Produc... -
C#樹林
【C#】List
.AsReadOnlyメソッドで読み取り専用のビュー(Wrapper)を作成する方法 List<T>を読み取り専用として公開したい System.Collections.Generic.List<T>は、Add, Remove, Insertなどのメソッドを持ち、要素を自由に変更(追加・削除)できる「可変(Mutable)」なコレクションです。 しかし、クラスの内部で管理してい... -
C#樹林
【C#】List
.ForEachとArray.ForEachの使い方:foreachループとの違い foreachループとForEachメソッド C#で配列(T[])やList<T>(ジェネリックリスト)に含まれるすべての要素に対して、何らかの処理を順番に行いたい場合、foreachループ構文を使用するのが最も標準的な方法です。 var items = new List<string>... -
C#樹林
【C#】List
.BinarySearchでソート済みリストを高速に検索する方法 リストの検索とパフォーマンス List<T>(ジェネリックリスト)に格納されたデータから特定の要素を探す際、Containsメソッド、IndexOfメソッド、またはLINQのFirstOrDefaultメソッドを使用するのが一般的です。 これらの方法は非常に直感的ですが、... -
C#樹林
【C#】List
.SortとComparison でリストをカスタム順序で並べ替える方法 List<T>.Sort()の標準動作とその限界 C#のList<T>(ジェネリックリスト)が提供するSort()メソッド(引数なし)は、要素を「昇順」(intなら数値の大小、stringなら辞書順)に並べ替える便利な機能です。 しかし、このデフォルトのルールでは... -
C#樹林
【C#】List
.Sortメソッドでリストの要素を昇順に並べ替える方法 List<T>のソート(並べ替え) C#のList<T>(ジェネリックリスト)は、データを動的に追加・削除できるため非常に便利ですが、格納されたデータを特定の順序(例: 数値の小さい順、アルファベット順)に並べ替えたい(ソートしたい)という要求... -
C#樹林
【C#】List
.Reverseメソッドでリストの要素をその場で逆順にする方法 List<T>の順序反転 C#のList<T>(ジェネリックリスト)に格納された要素の順序を、[A, B, C] から [C, B, A] のように完全に反転させたい場合があります。 List<T>クラスは、この操作を簡単に行うためのReverseというインスタンスメソッ... -
C#樹林
【C#】List
.RemoveAllで条件に一致する全要素を削除する方法 List<T>から複数の要素を削除する C#のList<T>(ジェネリックリスト)は、Remove(T item)メソッド(指定した最初の1要素を削除)やRemoveAt(int index)メソッド(指定したインデックスの要素を削除)を提供しています。 しかし、「リストに含... -
C#樹林
【C#】List
.AddRangeで別のコレクションの要素をまとめて追加する方法 List<T>への要素の追加 C#のList<T>に要素を追加する際、最も基本的な方法はAddメソッドを呼び出すことです。 var users = new List<string>(); users.Add("Alice"); users.Add("Bob"); しかし、もし追加したい要素が既に**別の配列(st... -
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月は、うるう年(閏年)かどうか...