C#のタプルRestプロパティの使い方:8要素以上のタプルを作成する方法
C#では、Restプロパティに別のタプルオブジェクトをネスト(入れ子)することで、8要素以上のタプルを作成することができます。
通常のTupleクラスは最大7つの要素までしか保持できませんが、Restプロパティを活用すれば、それ以上の要素も扱えるようになります。
Restプロパティを含むタプルの構造
Restプロパティを使用した場合、タプルは次のような型定義になります。
Tuple<T1, T2, T3, T4, T5, T6, T7, TRest>
この構造において、8番目の要素(TRest)はRestプロパティを使って追加されます。なお、Restプロパティ自体もタプルであるため、さらにネストすることで9個、10個と任意の数の要素を持つタプルを表現することも可能です。
サンプルコード
実際にRestプロパティを使用して8要素のタプルを作成し、各要素を出力する例を見てみましょう。
using System;
public class Program {
public static void Main() {
var myTuple = Tuple.Create(1, 2.5M, "Tom", "100", 5, 10.5M, "Henry", "100");
Console.WriteLine("Item1 : "+ myTuple.Item1);
Console.WriteLine("Item2 : "+ myTuple.Item2);
Console.WriteLine("Item3 : "+ myTuple.Item3);
Console.WriteLine("Item4 : "+ myTuple.Item4);
Console.WriteLine("Item5 : "+ myTuple.Item5);
Console.WriteLine("Item6 : "+ myTuple.Item6);
Console.WriteLine("Item7 : "+ myTuple.Item7);
Console.WriteLine("Item8 : "+ myTuple.Rest);
}
}実行結果
Item1 : 1 Item2 : 2.5 Item3 : Tom Item4 : 100 Item5 : 5 Item6 : 10.5 Item7 : Henry Item8 : (100)
ポイント解説
上記のコードでは、Tuple.Createメソッドを使って8つの異なる値を持つタプルを生成しています。注目すべき点は以下の通りです。
- 1〜7番目の要素には、
myTuple.Item1〜myTuple.Item7のように直接アクセスできます。 - 8番目以降の要素は、
myTuple.Restプロパティ経由でのみアクセス可能です。
実行結果からわかるように、Item8として出力される値は (100) と括弧付きで表示されています。これは、Restプロパティが単一の値ではなく「ネストされたタプルオブジェクト」であるためです。8番目の要素そのものにアクセスしたい場合は、myTuple.Rest.Item1 のように指定します。
-
【C#】Console.KeyAvailableプロパティの使い方とサンプルコード
Console.KeyAvailableプロパティとはC#のConsole.KeyAvailableプロパティは、標準入力ストリームにキー入力が利用可能かどうかを示す値を取得するためのプロパティです。戻り値はbool型で、キー入力があればtrue、なければfalseを返します。このプロパティは読み取り専用(getのみ)であり、Console.ReadKey()メソッドと組み合わせることで、処理をブロックすることなくキー入力の有無を確認しながらループ処理を実装できます。構文public static bool KeyAvailable { get; }使用例1:キー入力を検出して表示する以下は、
-
C#のConsoleクラスとは?主要プロパティの使い方を実例付きで解説
C#のConsoleクラスは、コンソールアプリケーションにおける標準入力・標準出力・標準エラー出力の各ストリームを表すクラスです。テキストの表示や入力の読み取りだけでなく、文字色や背景色の変更、カーソル位置やサイズの制御など、コンソール操作に関するさまざまな機能が提供されています。ここでは、Consoleクラスの代表的なプロパティの使い方を、サンプルコードと実行結果とあわせて解説します。Console.CursorLeftプロパティコンソール上のカーソル位置(左端から数えた列位置)を変更するには、Console.CursorLeftプロパティを使用します。サンプルコードusing System