-
C#で配列の要素にアクセスする方法を解説
C#では、配列の要素にアクセスする際、インデックス(添字)を指定します。配列のインデックスは0から始まるため、最初の要素は「0番目」、3番目の要素は「2番目」としてアクセスすることに注意しましょう。 1. 配列の定義と初期化 まず、配列を定義して初期化します。以下は3つの整数値を持つint型配列の例です。 int[] p = new int[3] {99, 92, 95}; 2. 配列の全要素を表示する forループを使えば、配列内のすべての要素を順番に表示できます。ループ変数をインデックスとして利用し、各要素へアクセスします。 for (j = 0; j < 3; j++ ) {
-
C#のMainメソッドでコマンドライン引数を受け取る方法をわかりやすく解説
C#におけるエントリーポイント「Mainメソッド」とはC#プログラムの実行は、必ずMain()メソッドから始まります。Mainメソッドはプログラムのエントリーポイント(開始地点)であり、次のように宣言します。static void Main(string[] args)コマンドライン引数を受け取る仕組みMainメソッドのパラメータである文字列配列 args に、コマンドラインから渡された引数が格納されます。string[] argsたとえば、2つの引数を渡して起動した場合、args には次のような値が自動的に設定されます。var args = new string[] { arg1, arg2
-
C#における引数(パラメータ)の渡し方:値渡し・参照渡し・out・paramsを徹底解説
C#では、メソッドに引数(パラメータ)を渡す方法として、「値渡し」と「参照渡し」の2つが基本となります。さらに、outパラメータやparams配列を活用することで、より柔軟な引数の受け渡しが実現できます。それぞれの仕組みと使い分けのポイントを詳しく見ていきましょう。 値渡し(Value) 値渡しは、引数の実際の値をメソッドの仮引数にコピーする方法です。この場合、メソッド内部でパラメータに対して行った変更は、呼び出し元の引数には一切影響しません。元のデータを保護したい場合に適した方法です。 参照渡し(Reference) 参照渡しは、引数のメモリ上の場所への参照を仮引数にコピーする方法です。
-
【C#入門】Array.Copy()メソッドで配列の一部を別の配列にコピーする方法
C#では、Array.Copy()メソッドを使うことで、ある配列の一部(セクション)を別の配列へ簡単にコピーできます。このメソッドはSystem名前空間に属するArrayクラスの静的メソッドであり、インスタンスを生成せずに直接呼び出せるのが特徴です。 Array.Copy()メソッドの基本構文 Array.Copy(src, dest, length); 各パラメータの意味は以下のとおりです。 src … コピー元となる配列 dest … コピー先の配列 length … コピーする要素数 使用例 次のサンプルコードでは、要素数4の整数型配列から、先頭2つの要素を要素数2の別の配列へコピー
-
C#で2つの配列を比較する方法【SequenceEqualの使い方】
C#で2つの配列が等しいかどうかを確認したい場合、System.Linq名前空間に含まれるSequenceEqual()メソッドを使用するのが最も簡単な方法です。このメソッドは、2つのシーケンス(配列)の要素数が同じで、かつ同じ順序で同じ要素が格納されている場合に true を返します。1. 比較する2つの配列を用意するまず、比較対象となる2つの配列を用意します。// 2つの配列 int[] arr = new int[] { 99, 87, 56, 45 }; int[] brr = new int[] { 99, 87, 56, 45 };2. SequenceEqual()で配列を比較す
-
C#で2つの日付を比較する方法をわかりやすく解説
C#で日付同士を比較するには、まずDateTimeオブジェクトを使って比較対象となる2つの日付を設定する必要があります。ここでは、C#のDateTimeクラスを使用して、日付の比較を行う方法を具体的に見ていきましょう。 比較用の日付を準備する 日付1の作成 まず、1つ目の日付を作成します。DateTimeクラスのコンストラクタに年・月・日の順で値を渡すことで、指定した日付のインスタンスを生成できます。 DateTime date1 = new DateTime(2018, 08, 05); Console.WriteLine(Date 1 : {0}, date1); 日付2の作成 続いて、比
-
C#で2つのDictionary(辞書)を比較する方法を解説
C#で2つのDictionary(辞書)が同じ内容を持っているかどうかを確認したい場面はよくあります。本記事では、2つの辞書を比較する基本的な方法を、サンプルコードとともにわかりやすく解説します。 比較用の2つの辞書を準備する まず、比較対象となる2つの辞書を作成します。ここでは、キーと値の両方がint型の辞書を使用します。 1つ目の辞書 IDictionary<int, int> d = new Dictionary<int, int>(); d.Add(1, 97); d.Add(2, 89); d.Add(3, 77); d.Add(4, 88); // 1
-
C#で2つのリストを比較し、差分を3つ目のリストに格納する方法
C#で2つのリストを比較し、「片方のリストにのみ存在する要素(差分)」を取り出して3つ目のリストに格納したい場合は、LINQの Except() メソッドを使うのが最も簡単です。この記事では、基本的な使い方から完全なサンプルコードまでを解説します。 比較対象となる2つのリストを用意する まず、比較元となる2つの文字列型リストを作成します。 リスト1 List<string> list1 = new List<string>(); list1.Add(A); list1.Add(B); list1.Add(C); list1.Add(D); リスト2 List<
-
C#で2つのリストが等しいかどうかを比較する方法
C#では、LINQのExceptメソッドを使って2つのリストの差分を抽出することで、リスト同士が等しいかどうかを判断できます。まず、比較対象となる2つのリストを用意しましょう。 リスト1の作成 List<string> list1 = new List<string>(); list1.Add(A); list1.Add(B); list1.Add(C); list1.Add(D); リスト2の作成 List<string> list2 = new List<string>(); list2.Add(C); list2.Add(D); Excep
-
C#で10進数を8進数に変換する方法を解説
C#で10進数を8進数に変換するには、whileループを使って10進数の値を8で割り続け、その都度発生する余りを配列に格納していくのが基本的な手法です。変換の仕組みまず、10進数の値を8で割った余り(剰余)を求め、それを8進数用に用意した配列に順番に格納します。これは「mod 8」演算によって実現できます。while (dec != 0) { oct[i] = dec % 8; dec = dec / 8; i++; }次に、同じ数を8で割って商を新しい値として更新します。この処理を10進数が0になるまで繰り返すことで、各桁の余りがすべて配列に記録されます。余りは下位の
-
【C#入門】2次元配列を1次元配列に変換する方法をわかりやすく解説
C#で2次元配列を1次元配列に変換するには?プログラミングでは、2次元配列のデータを1次元配列として扱いたい場面がよくあります。C#では、ネストしたforループとカウンタ変数を組み合わせることで、2次元配列の全要素を1次元配列へ簡単にコピーできます。本記事では、その具体的な手順とサンプルコードを解説します。手順1:2次元配列と1次元配列を宣言するまず、変換元となる2次元配列と、変換先となる1次元配列を用意します。int[] a = new int[2, 2] {{1,2}, {3,4}}; int[] b = new int[4];ここでのポイントは、1次元配列のサイズを「行数 × 列数」で指
-
C#で配列の一部を別の配列にコピーする方法(Array.Copyメソッドの使い方)
C#では、Array.Copy()メソッドを使うことで、ある配列の一部(または全体)を別の配列へ簡単にコピーできます。ループ処理を自分で書く必要がなく、コードもすっきりと読みやすくなるのが特徴です。Array.Copy()メソッドの基本構文Array.Copy(src, dest, length);各パラメータの意味は以下の通りです。src … コピー元となる配列dest … コピー先の配列length … コピーする要素数使用例次のサンプルコードでは、要素数4の配列から先頭3つの要素を、要素数3の別の配列へコピーしています。using System; class Program {
-
C#におけるメソッドのオーバーライドとメソッドの隠ぺい(シャドウイング)の違いとは?
オーバーライド(Overriding) オーバーライドとは、継承関係にある親クラスのメソッドを、子クラス側で上書きして再定義する仕組みです。これにより、サブクラスはその型に固有の振る舞いを定義でき、親クラスのメソッドを自分の要件に合わせて実装し直すことができます。 C#でオーバーライドを行うには、親クラス側のメソッドに virtual または abstract キーワードが必要で、子クラス側では override キーワードを付けてメソッドを再定義します。 以下は、抽象クラスを使ってオーバーライドを実装した例です。 コード例 using System; namespace Polymorp
-
C#でリストの要素数を数える方法
C#でリスト(List<T>)に含まれるアイテムの数を数えるには、Countプロパティを使用します。Countプロパティは、リストに現在格納されている要素の数をint型で返します。 リストを作成する まず、サンプルとして文字列型のリストを作成します。 List<string> myList = new List<string>() { electronics, clothing, appliances, accessories }; 要素数を取得する リストの要素数は、次のようにCountプロパティを参照するだけで取得でき
-
C#でDictionary(辞書)を作成する方法をわかりやすく解説
C#におけるDictionary(辞書)は、キーと値のペアを格納するコレクションです。ジェネリック版の Dictionary<TKey, TValue> は、System.Collections.Generic 名前空間に含まれています。Dictionaryの基本的な作成手順Dictionaryを作成するには、まずインスタンスを生成し、その後 Add() メソッドを使ってキーと値のペアを追加していきます。以下の例では、キーと値の両方を int型 に設定したDictionaryに、5つの要素を追加しています。IDictionary<int, int> d = new Di
-
C#の値型と参照型の違いをわかりやすく解説
C#の変数は、大きく「値型(Value Type)」と「参照型(Reference Type)」の2種類に分類されます。この違いを正しく理解することは、メモリ管理やパフォーマンスの最適化において非常に重要です。それぞれの特徴を見ていきましょう。 値型(Value Type)とは 値型の変数には、データそのものが直接代入されます。すべての値型は System.ValueType クラスから派生しており、変数を宣言すると、システムはその値を格納するためのメモリを自動的に割り当てます。 値型の変数はスタック領域に格納されるという点が大きな特徴です。スタックはアクセスが高速なため、値型は効率的に動作し
-
C#でディレクトリを作成する方法|Directoryクラスの基本を解説
C#では、System.IO.Directoryクラスのメソッドを使うことで、ディレクトリ(フォルダ)の作成・移動・削除などの操作を簡単に行うことができます。この記事では、C#でディレクトリを作成する基本的な手順と、サブディレクトリの作成方法について解説します。1. System.IO名前空間をインポートするまず、ファイルやディレクトリを操作するために必要なSystem.IO名前空間をコードの先頭に追加します。using System.IO;2. Directory.CreateDirectory()メソッドでディレクトリを作成するディレクトリを作成するには、Directory.CreateD
-
C#の可変長引数(params)の使い方をわかりやすく解説
C#では、paramsキーワードを使用することで、可変長引数(可変個の引数)を受け取れるメソッドを定義できます。これにより、呼び出し側で引数の数を自由に変更できるため、柔軟なメソッド設計が可能になります。paramsキーワードによるメソッド定義以下は、整数の掛け算を行うメソッドの例です。paramsキーワードを使うことで、任意の数のint型の値を受け取れるようになっています。static int Multiply(params int[] b)このメソッドは、引数が1つでも2つでも、さらにそれ以上でも同じように呼び出すことができます。実際に、複数の値を渡して同じ関数を呼び出す例を見てみましょう
-
C#で配列を定義する方法【宣言・初期化の基本を解説】
C#で配列を定義するには、データ型の後に角括弧 [] を付け、new キーワードを使って配列のサイズを指定します。int[] runs = new int[10];この例では、整数型の配列 runs を10個の要素を持つ配列として宣言しています。さらに、宣言と同時に初期化することも可能です。int[] runs = new int[3] {99, 92, 95};このように記述すると、配列の宣言と初期値の設定を1行で行えます。波括弧 {} の中にカンマ区切りで値を並べることで、各要素に初期値が順番に代入されます。サンプルコード以下は、配列の宣言・初期化・表示までの一連の流れを示した完全な例です
-
カプセル化とは?C#での実装方法をコード例付きで解説
カプセル化とは カプセル化(Encapsulation)は、オブジェクト指向プログラミングにおける重要な概念の一つです。クラスの内部データやメソッドを外部から隠蔽し、意図しないアクセスや変更からデータを保護する役割を果たします。 C#では、アクセス修飾子(access specifier)を使用することでカプセル化を実装します。アクセス修飾子は、クラスメンバー(フィールドやメソッド)のスコープ(有効範囲)と可視性を定義するキーワードです。 C#で使える主なアクセス修飾子 public:すべてのコードからアクセス可能 private:同じクラス内からのみアクセス可能 protected:同じ