C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で単一のジェネリックリストに異なる型のリストを複数格納する方法

C#では、List<List<object>> のように「object型のリスト」を要素とするリストを作成することで、異なる型のリストを複数(n個)まとめて1つのジェネリックリストに格納できます。object型はすべての型の基底クラスであるため、intやstringなど、どんな型のデータでも保持できるのがポイントです。

実装例

以下のコードでは、整数値を格納したリストと文字列を格納したリストという、異なる型の内容を持つ2つのリストを、1つの List<List<object>> に追加しています。

using System;
using System.Collections.Generic;

namespace MyApplication {
    public class Program {
        public static void Main() {
            // object型のリストを格納するためのリストを作成
            List<List<object>> list = new List<List<object>>();

            // 整数値を格納するリスト
            List<object> list1 = new List<object>();
            list1.Add(101);
            list1.Add(102);
            list1.Add(103);
            list.Add(list1);

            // 文字列を格納するリスト
            List<object> list2 = new List<object>();
            list2.Add("Test1");
            list2.Add("Test2");
            list2.Add("Test3");
            list.Add(list2);

            // 入れ子になったforeachループですべての要素を出力
            foreach (List<object> objectList in list) {
                foreach (object obj in objectList) {
                    Console.WriteLine(obj);
                }
                Console.WriteLine();
            }
        }
    }
}

実行結果

上記コードを実行すると、以下のように出力されます。

101
102
103

Test1
Test2
Test3

補足:注意点

この手法は柔軟性が高い一方で、object 型を使用するためボックス化によるパフォーマンスへの影響や、取り出し時の明示的な型キャストが必要になる点には注意が必要です。型安全性を重視する場合は、共通の基底クラスやインターフェースを定義して List<BaseClass> のように扱うか、C# 4.0以降であれば Tuple やカスタムクラスで構造化する方法も検討するとよいでしょう。

  1. HTMLリストの種類を解説!ul・ol・dlの違いと使い分け方

    HTMLリストの3つの種類 HTMLには、用途に応じて使い分けられる3種類のリストがあります。 順序なしリスト <ul> 箇条書き形式のリストです。項目同士に特定の順序関係がなく、デフォルトでは黒丸(ビュレット)が先頭に表示されます。 順序付きリスト <ol> 番号付きのリストです。手順やランキングなど、項目に順序がある場合に使用します。 定義リスト <dl> 用語とその定義(説明文)をセットで表示するためのリストです。用語は<dt>タグ、説明は<dd>タグで記述します。 これらのリストは互いに入れ子(ネスト)にできるほか、CS

  2. PowerPointで1枚のスライドに長いリストをきれいに収める方法

    PowerPointはプレゼンテーションにおいて重要な役割を果たします。多くの方が、スライド1枚ごとに表示する情報量を絞り込み、不要な情報でスライドをごちゃごちゃにしないよう心掛けているのではないでしょうか。しかし、1枚のスライドに長いリストを表示したい場面に直面したことはありませんか?この記事では、PowerPointで1枚のスライドに長いリストをうまく収める方法をご紹介します。 複数列を使って1枚のスライドにデータを収める 国名の一覧やToDoリストなど、アイテムのリストを1枚のスライドにまとめて表示したいことがあります。こうした場面で最も悩ましいのが、リストがどんどん続いてしまい、スライ