C#のUri.FromHex()メソッドの使い方を徹底解説!16進数を10進数に変換する方法
C#のUri.FromHex()メソッドは、16進数で表される1桁の文字(0〜9、a〜f、A〜F)を、対応する10進数の整数値に変換するための静的メソッドです。URI処理などで16進数表記の値を数値として扱いたい場合に便利なメソッドです。
基本構文
Uri.FromHex()メソッドの構文は以下のとおりです。
public static int FromHex (char digit);
パラメータdigitには、変換対象となる16進数の1文字(0-9、a-f、A-Fのいずれか)を指定します。戻り値は、その文字に対応するint型の10進数の値です。
使用例1:英字の16進数文字を変換する
まず、16進数の文字「D」を10進数の値に変換する例を見てみましょう。
using System;
public class Demo {
public static void Main(){
char ch = 'D';
Console.WriteLine("Character value = " + ch);
int res = Uri.FromHex(ch);
Console.WriteLine("Converted int value = " + res);
}
}実行結果
Character value = D Converted int value = 13
このように、16進数の「D」は10進数では「13」に相当するため、正しく変換されていることがわかります。
使用例2:数字の16進数文字を変換する
次に、数字の文字「6」を指定した場合の例です。
using System;
public class Demo {
public static void Main(){
char ch = '6';
Console.WriteLine("Character value = " + ch);
int res = Uri.FromHex(ch);
Console.WriteLine("Result = " + res);
}
}実行結果
Character value = 6 Result = 6
数字の場合は、そのまま同じ数値が返されます。「6」は16進数でも10進数でも同じ値を持つため、結果も「6」となります。
注意点
Uri.FromHex()メソッドに、0-9、a-f、A-F以外の無効な文字を渡した場合は、ArgumentExceptionがスローされる点に注意してください。たとえば「G」や記号などを渡すと例外が発生するため、事前に文字が有効な16進数であるかどうかをチェックしてから呼び出すことが推奨されます。
まとめ
Uri.FromHex()メソッドを使うことで、16進数の1桁の文字を簡単に10進数の整数へ変換できます。URIのエンコード・デコード処理や、16進数データの解析などを行う際に活用できる、シンプルながら実用的なメソッドです。
-
C#のTakeWhileメソッドの使い方をわかりやすく解説
C#のLINQに用意されているTakeWhile()メソッドを使うと、Predicate(述語)で指定した条件が成立している間、シーケンスの先頭から要素を取得することができます。 このメソッドは、条件を満たす限り先頭から順に要素を取り出し、最初に条件を満たさなくなった要素に到達した時点で処理を停止するという特徴があります。そのため、配列の途中に条件外の要素があると、それ以降の要素はたとえ条件を満たしていても取得されない点に注意が必要です。 TakeWhile()メソッドの基本的な使い方 まず、整数型の配列を宣言して初期化します。 int[] arr = { 25, 40, 65, 70 };
-
C#のGroupBy()メソッドとは?要素をグループ化する使い方を解説
GroupBy()メソッドとはC#のGroupBy()は、System.Linq名前空間に用意されている拡張メソッドの一つです。指定したキー値に基づいてコレクション内の要素をグループ化し、その結果をIEnumerable<IGrouping<TKey, TElement>>として返します。各グループにはKeyプロパティが割り当てられ、同じキーを持つ要素がひとつのまとまりとして扱われます。サンプルコードまず、次のような整数型の配列を用意します。int[] arr = { 2, 30, 45, 60, 70 };この配列に対してGroupBy()を使い、「50以下の要素」と