-
Python樹林
Pythonの辞書(dict)を作成する3つの方法:{} と dict()
Pythonにおける**辞書(dict)**は、キー(Key)と値(Value)をペアにしてデータを格納する、非常に重要なデータ型です。「"name"」というキーに「"Tanaka"」という値を、「"id"」というキーに「101」という値を関連付ける、といった使い方をします。 リ... -
Python樹林
Pythonのset(集合)演算:union, intersection, difference の使い方
Pythonのset(集合型)は、単に重複しない要素を格納するだけでなく、数学の「集合」と同じように、**論理演算(集合演算)**を行うための強力なメソッドを備えています。 和集合: 2つのsetのすべての要素(重複なし) 積集合: 2つのsetに共通する要素 差... -
C#樹林
【C#】コンストラクタの基本:newキーワードとクラスの初期化メソッド
クラスの「コンストラクタ」とは C#の「クラス(class)」は、オブジェクト(モノ)を作るための「設計図」です。この設計図からnewキーワードを使って実際の「オブジェクト(インスタンス)」を生成する際、そのオブジェクトが使用可能な状態になるように... -
C#樹林
【C#】式形式のメンバー(Expression-Bodied Members):=>でメソッドやプロパティを簡潔に書く方法
{ return ...; } の冗長性 C#のクラスでメソッドやプロパティを定義する際、その処理内容が非常に単純な場合があります。 例えば、privateなフィールドの値を返すだけのgetアクセサーや、2つのプロパティを足した結果を返すだけのメソッドなどです。 // 従... -
Python樹林
Pythonのset(集合)で要素の存在を確認する方法(in 演算子)
Pythonのset(集合型)は、重複する要素を持たないという特徴の他に、もう一つ非常に重要な利点があります。それは、特定の要素がその set の中に**「含まれているかどうか(存在するかどうか)」を非常に高速に判定できる**ことです。 リスト(list)でも... -
Python樹林
Pythonのset(集合)から要素を削除する:remove, discard, clear の違いと使い方
Pythonのset(集合型)は、要素の追加だけでなく、不要になった要素の削除も自由に(ミュータブルに)行えます。 要素を削除する方法はいくつかありますが、特に .remove() と .discard() の動作の違いを理解しておくことが重要です。また、すべての要素を... -
Python樹林
Pythonのset(集合)に要素を追加する:.add()メソッドの使い方
Pythonのset(集合型)は、作成した後でも要素を追加したり削除したりできる「ミュータブル(変更可能)」なデータ型です。リストの .append() とは異なり、set への要素の追加には .add() メソッドを使用します。 この記事では、.add() メソッドの基本的... -
C#樹林
【C#】paramsキーワード:可変長引数のメソッドを定義する方法
メソッドの引数と「可変長」 C#でメソッドを定義する際、通常は引数の数と型を固定します(例: int Calulate(int a, int b))。 しかし、時には「引数が2個の場合も、5個の場合も、10個の場合も、すべて同じメソッドで処理したい」という要求があります。... -
C#樹林
【C#】メソッドのオーバーロード(Overloading):同名で引数が異なるメソッドを定義する方法
メソッドのオーバーロードとは C#のクラス設計において、同じ名前を持ちながら、引数(パラメータ)の構成が異なるメソッドを複数定義する技術を「メソッドのオーバーロード(Overloading)」と呼びます。 例えば、Console.WriteLine()メソッドは、WriteLi... -
C#樹林
【C#】クラスの「メソッド」を定義する方法:振る舞いを実装する基本
クラスとメソッド(振る舞い) C#の「クラス(class)」は、データ(状態)と振る舞い(アクション)を一つにまとめた設計図です。 データ(状態): privateな「フィールド」やpublicな「プロパティ」で表されます。(例: string Name, int Health) 振る... -
C#樹林
【C#】プロパティとバッキングフィールド:setアクセサーで検証ロジックを実装する方法
自動実装プロパティの利便性と限界 C#のクラス設計において、データを外部に公開する最も簡単な方法は「自動実装プロパティ」を使用することです。 // 自動実装プロパティ public int Quantity { get; set; } この { get; set; } 構文は非常に簡潔ですが、... -
C#樹林
【C#】プロパティの初期化:コンストラクタを省略し宣言時にデフォルト値を設定する方法
プロパティの初期値設定 C#のクラス設計において、プロパティ({ get; set; })がnewでインスタンス化された時点で、nullや0といった型のデフォルト値ではなく、特定の「初期値」を持っていてほしい場合があります。 従来、この初期値の設定は、主にコンス... -
C#樹林
【C#】読み取り専用プロパティを定義する3つの方法 (get;, private set, =>)
読み取り専用プロパティの重要性 C#のクラス設計において「カプセル化」は非常に重要な原則です。これは、クラスの内部データをprivateフィールドで保護し、外部からの不正なアクセスや意図しない変更を防ぐことを意味します。 特に、オブジェクトが一度作... -
C#樹林
【C#】プロパティ(Property)の基本:{ get; set; }によるカプセル化
クラスのデータと「カプセル化」 C#のクラスは、データ(状態)と振る舞い(メソッド)を一つにまとめた設計図です。クラスが持つデータを「フィールド(メンバー変数)」として定義できますが、これをpublic(公開)にしてしまうと、クラスの外部から誰で... -
C#樹林
【C#】クラス(class)の定義と基本:フィールド、プロパティ、コンストラクタ、メソッド
クラスとは:オブジェクト指向の設計図 C#はオブジェクト指向プログラミング(OOP)言語であり、その中心的な概念が「クラス(class)」です。 クラスとは、特定のデータ(状態)と振る舞い(機能)を一つにまとめた「設計図」のようなものです。 クラス (... -
C#樹林
【C#】Queue
の基本:FIFO(先入れ先出し)コレクションの使い方 Queue<T>とは何か? FIFO(先入れ先出し) C#のSystem.Collections.Generic名前空間には、List<T>(動的配列)やStack<T>(スタック)と並び、Queue<T>(キュー)という特定の操作に特化したコレクションが用意されています。 Que... -
C#樹林
【C#】Stack
の基本:LIFO(後入れ先出し)コレクションの使い方 Stack<T>とは何か? LIFO(後入れ先出し) C#のSystem.Collections.Generic名前空間には、List<T>やDictionary<TKey, TValue>の他に、Stack<T>という特定の操作に特化したコレクションがあります。 Stack<T>(スタック)は... -
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なら辞書順)に並べ替える便利な機能です。 しかし、このデフォルトのルールでは... -
Python樹林
Pythonの集合型(set)とは? 重複を除外する特徴と基本的な作成方法
Pythonには、複数のデータをまとめて扱うコレクション型として、リスト(list)やタプル(tuple)の他に**集合型(set)**があります。 set は、数学の「集合」の概念に基づいたデータ型で、以下の2つの非常に重要な特徴を持っています。 重複する要素を持... -
Python樹林
Pythonのrange()関数:連続した数値シーケンスを生成する方法
Pythonでプログラミングを行う際、for ループ(繰り返し処理)を「5回だけ実行したい」や、「10から20までの連続した数値が欲しい」といった場面が頻繁にあります。 このような場合に使うのが range() 関数です。range() は、それ自体がリスト(list)なの... -
Python樹林
Pythonで変数の値を入れ替える方法:一時変数を使わない多重代入(スワップ)
プログラミングでは、2つの変数に格納されている値を互いに入れ替えたい(スワップしたい)場面があります。例えば、並び替え(ソート)アルゴリズムを実装する際などです。 伝統的な方法(一時変数の使用) 多くのプログラミング言語では、2つの変数の値... -
Python樹林
Pythonのアンパック機能:リストやタプルの要素を変数に一括代入する方法
Pythonでリスト(list)やタプル(tuple)を扱う際、その要素を個別の変数に取り出して使いたいことがよくあります。 例えば、座標データを扱う場合、以下のようにインデックスを指定して取り出すのが通常です。 point = (100.5, 35.2) # 通常のインデック... -
Python樹林
Pythonタプルの操作:要素の参照(インデックス)、スライス、要素数の取得
Pythonのタプル(tuple)は、一度作成すると中身を変更できない「イミュータブル(変更不可能)」なデータ型です。 しかし、「変更」ができないだけで、リスト(list)と同様に、格納されている要素を**「参照」したり、「スライス(切り出し)」したり、...