-
C#のSortedSetクラスとは?主要なプロパティ・メソッドと使い方を実例付きで解説
C#のSortedSet<T>クラスは、要素が常にソートされた順序(昇順)で維持されるコレクションを表すジェネリッククラスです。System.Collections.Generic名前空間に属し、重複する要素は自動的に除外されるため、順序付きの一意なデータ集合を扱いたい場合に非常に便利です。この記事では、SortedSetクラスの主なプロパティとメソッドを一覧形式で整理し、実際のコード例とその実行結果もあわせて紹介します。SortedSetクラスの主なプロパティSortedSetクラスには、以下のようなプロパティが用意されています。No.プロパティと説明1ComparerSorte
-
C#で指定した値を含むLinkedListの最後のノードを検索する方法
C#のLinkedListコレクションで、指定した値を含む最後のノードを検索するには、FindLast()メソッドを使用します。このメソッドは、リストの末尾から先頭に向かって走査を行い、指定された値と一致する最初(つまりリスト内で最後)のノードを返します。該当する値が存在しない場合はnullを返します。FindLast()メソッドの基本構文public LinkedListNode<T>? FindLast (T value);戻り値はLinkedListNode<T>型であり、ノードの値にはValueプロパティを使ってアクセスできます。サンプルコード1:int型のLi
-
C#で配列の最初の要素のインデックスを取得する方法
C#で配列の最初の要素のインデックスを取得するには、Array.GetLowerBound(0)メソッドを使用します。このメソッドは、指定した次元における配列の下限(最小インデックス)を返します。 通常のC#配列はインデックス0から始まるため、GetLowerBound(0)は常に「0」を返します。引数の「0」は、対象となる次元(0番目=最初の次元)を指定するものです。 例1:文字列配列の場合 以下のコードでは、文字列配列に対して各種プロパティの状態を確認しつつ、最初の要素のインデックスを取得しています。 using System; public class Demo { public
-
C#のGetNestedTypeメソッドで現在の型内にネストされた特定の型を取得する方法
C#では、Type.GetNestedType()メソッドを使用することで、現在の型(Type)内にネストされた特定の型を取得できます。このメソッドは、指定した名前を持つ入れ子の型を検索し、対応するTypeオブジェクトを返します。基本構文public Type GetNestedType(string name);引数nameには、取得したい入れ子の型の名前を文字列で指定します。該当する型が存在しない場合はnullが返されます。例1:ネストされた型を取得する以下のコードは、Subjectクラス内にネストされた「AdvSubject」クラスを取得する例です。using System; publi
-
C#で現在のType内にネストされた型を取得する方法
C#では、Type.GetNestedTypes()メソッドを使うことで、指定した型の中にネスト(入れ子)されているすべての型を簡単に取得できます。この記事では、基本的な使い方から、BindingFlagsを指定した応用例まで、実際のコードと出力結果をもとにわかりやすく解説します。GetNestedTypes()メソッドとはGetNestedTypes()は、System名前空間のTypeクラスが提供するメソッドです。呼び出し元の型の中で宣言されているネストされた型(入れ子になったクラスや構造体など)をType配列として返します。リフレクションを使って動的に型情報を調べたい場合に非常に便利です
-
C#でStringCollectionへの同期アクセスを取得する方法
C#のStringCollectionクラスは、System.Collections.Specialized名前空間に属する文字列専用のコレクションです。マルチスレッド環境下でコレクションに安全にアクセスするには、SyncRootプロパティとlockステートメントを組み合わせて、同期(排他制御)されたアクセスを行います。ここでは、StringCollectionへの同期アクセスを取得する具体的なコード例を2つ紹介します。例1:SyncRootプロパティを使った同期アクセスusing System; using System.Collections.Specialized; public cla
-
C#入門:StringDictionaryへの同期アクセスを取得する方法(SyncRoot活用)
StringDictionaryは、キーと値がどちらも文字列型である特殊化されたハッシュテーブルコレクションです。マルチスレッド環境下でコレクションを安全に操作・列挙するには、SyncRootプロパティで取得できるオブジェクトに対してlockステートメントを適用し、同期アクセスを実現します。 以下に、実際のコード例を示します。 例1:SyncRootによる同期アクセス using System; using System.Collections; using System.Collections.Specialized; public class Demo { public stati
-
【C#】Char.IsSurrogateメソッドで指定した文字がサロゲートコードかどうかを判定する方法
C#で文字列内の指定された位置にある文字がサロゲートコードポイント(Unicode範囲 U+D800 ~ U+DFFF)を持つかどうかを確認するには、Char.IsSurrogateメソッドを使用します。このメソッドは、指定位置の文字が上位サロゲートまたは下位サロゲートである場合に true を返します。サロゲートは、絵文字などの補助文字(BMP外の文字)をUTF-16で表現するために使われる特殊なコード単位で、通常はペアで構成されます。文字列処理を行う際にこの判定は非常に重要です。例1:サロゲート値を含む場合以下の例では、文字配列の末尾(インデックス4)にサロゲート値 \uD800 を含む文
-
C#で浮動小数点値の双曲線逆余弦(アークコサイン)を取得する方法
C#で浮動小数点値の双曲線逆余弦(ハイパボリック・アークコサイン)を求めるには、MathF.Acosh() メソッドを使用します。このメソッドは、引数として渡された float 値の双曲線逆余弦をラジアン単位で返します。MathF.Acosh() メソッドの基本MathF.Acosh() は .NET Core 以降で利用可能なメソッドで、単精度浮動小数点数(float 型)を対象としています。なお、双曲線逆余弦は数学的に x ≥ 1 の範囲でのみ定義されるため、1 未満の値を渡すと NaN(Not a Number) が返される点に注意が必要です。例1:1未満の値を渡した場合まず、1 未満の
-
C#のMathF.Asinメソッドでサイン値から角度(アークサイン)を取得する方法
C#で「サインが指定したfloat値となる角度」を求めるには、MathF.Asinメソッドを使用します。Asinは「アークサイン(逆正弦)」とも呼ばれ、引数に渡したfloat型の値に対して、そのサインがその値になる角度をラジアン単位で返します。MathF.Asinメソッドの構文public static float Asin (float x);パラメータと戻り値x:サイン値として扱うfloat型の値。有効な範囲は -1 ~ 1 です。戻り値:引数xのサインとなる角度(ラジアン)。範囲は -π/2 ~ +π/2 です。なお、引数が -1 未満または 1 より大きい場合は NaN(非数) が返さ
-
C#の配列でforeachループを使う方法!要素の表示・検索・比較をサンプルコードで解説
C#では、foreachループを使うことで、配列の各要素へインデックスを意識せずにシンプルにアクセスできます。for文のような初期化・条件式・インクリメントの記述が不要なため、コードが読みやすくなるのが大きなメリットです。 この記事では、文字列配列をforeachループで反復処理する基本から、Array.Existsメソッドによる要素の検索、Equalsメソッドによる配列の比較まで、具体的なサンプルコードと実行結果をもとに解説します。 例1:foreachループで配列の全要素を表示する まずは基本となる例です。商品カテゴリを格納した文字列配列を作成し、foreachループですべての要素をコン
-
C#でUInt32インスタンスのHashCode(ハッシュコード)を取得する方法
C#では、GetHashCode()メソッドを使用することで、現在のUInt32インスタンスのハッシュコードを取得できます。このメソッドはSystem名前空間に属しており、ハッシュテーブルなどのデータ構造でオブジェクトを効率的に管理するために利用される重要な機能です。例1以下のコードは、UInt32インスタンスからハッシュコードを取得する基本的な例です。using System; public class Demo { public static void Main() {
-
MySQLであるテーブルから別のテーブルへデータを挿入する方法(INSERT INTO SELECT)
MySQLであるテーブルから別のテーブルへデータをコピーして挿入したい場合は、INSERT INTO ... SELECT 文を使用します。この記事では、実際にテーブルを作成し、データを別テーブルへ移す手順をサンプルコードと実行結果とともにわかりやすく解説します。 1. 元となるテーブルを作成する まず、コピー元となるテーブル「DemoTable1」を作成します。カラムは Id(int型)と FirstName(varchar型)の2つです。 mysql> create table DemoTable1 -> ( -> Id int, -> Fi
-
MySQLでRAND()によるランダム並べ替えをしながらグループを維持する方法
MySQLではRAND()関数を使ってレコードをランダムに並べ替えられますが、単純にORDER BY RAND()を使うと、同じ値を持つレコードまでバラバラに散らばってしまうことがあります。本記事では、全体をランダムにシャッフルしながら、同じ値(この例では学生の点数)を持つレコード同士はグループとしてまとめて表示する方法を、具体的な手順とともに解説します。 サンプルテーブルの作成 まず、テーブルを作成しましょう。 mysql> create table DemoTable -> ( -> StudentId int NOT NULL AUTO_INCREME
-
MySQLで列から最大値を取得する方法
MySQLで列の最大値を取得するには?MySQLのテーブルから特定の列の最大値を取得するには、ORDER BY句とLIMIT句を組み合わせる方法が便利です。ここでは、実際にテーブルを作成し、データを挿入して、最大値を取得する手順を順番に解説します。1. テーブルを作成するまず、以下のコマンドでサンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Value int -> ); Query OK, 0 rows affected (0.63 sec)2. レコードを挿入する次に、INSERTコ
-
C#でListDictionaryへの同期アクセスを取得するには?SyncRootとlockの使い方を解説
C#のListDictionaryに対して同期(スレッドセーフ)なアクセスを行うには、SyncRootプロパティをlockステートメントでロックします。これにより、複数のスレッドから同時にコレクションへアクセスしても、列挙中にコレクションが変更されることによる不整合や例外を防ぐことができます。 なお、ListDictionaryは既定では同期されておらず、IsSynchronizedプロパティはfalseを返します。そのため、マルチスレッド環境で安全に操作したい場合は、必ずlock(dict.SyncRoot)で処理を保護する必要があります。 コード例1:基本となる同期アクセスの実装 usin
-
C#でHashtableの指定したキーのハッシュコードを取得する方法
C#のHashtableクラスでは、GetHashメソッドを使うことで、指定されたキーに対応するハッシュコードを取得できます。ただし、このメソッドはprotectedとして定義されているため、外部から直接呼び出すことはできません。そこで、Hashtableを継承した独自クラスを作成し、その中から呼び出すのが一般的な手法です。以下に、実際のコード例と実行結果を紹介します。例1:文字列キーのハッシュコードを取得するusing System; using System.Collections; public class HashCode : Hashtable { &nbs
-
C#で述語(Predicate)に一致するリストの全要素を取得する方法
C#でList<T>から、述語(Predicate)で指定された条件に一致するすべての要素を取得するには、FindAllメソッドを使用します。FindAllメソッドは、Predicate<T>デリゲートが定義する条件を満たすすべての要素を含む新しいリストを返します。例1:3の倍数を抽出するusing System; using System.Collections.Generic; public class Demo { private static bool demo(int i) {  
-
C#のStringCollectionの末尾に文字列を追加する方法(Addメソッド)
C#のStringCollectionクラスは、System.Collections.Specialized名前空間に含まれる文字列専用のコレクションクラスです。このコレクションの末尾に新しい文字列を追加するには、Add()メソッドを使用します。Addメソッドの基本Add()メソッドは、引数に渡した文字列をコレクションの最後に追加します。戻り値としては、追加された要素の位置(インデックス)がint型で返されます。例1:複数の文字列を順番に追加するusing System; using System.Collections.Specialized; public class Demo {
-
C#でコレクション(Collection)の末尾にオブジェクトを追加する方法
C#でCollection<T>の末尾にオブジェクトを追加するには、Add()メソッドを使用します。Collection<T>はSystem.Collections.ObjectModel名前空間に属するジェネリックコレクションであり、Add()メソッドを呼び出すたびに、引数に指定した要素がコレクションの最後に追加されていきます。 例 using System; using System.Collections.ObjectModel; public class Demo { public static void Main() {