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

【C#入門】コレクション初期化子を使ってコレクションを初期化する方法

C#では、コレクション初期化子(Collection Initializer)の構文を利用することで、クラスオブジェクトなどを含むコレクションを簡潔かつ読みやすく初期化できます。この記事では、Employeeクラスのオブジェクトを例に、その基本的な使い方を解説します。

Employeeオブジェクトへの値の設定

まず、オブジェクト初期化子を使って、各Employeeオブジェクトに値を設定します。

var emp1 = new Employee() { EID = 001, EmpName = "Tim", EmpDept = "Finance"};
var emp2 = new Employee() { EID = 002, EmpName = "Tom", EmpDept = "HR"};

オブジェクト初期化子「{ ... }」の中にプロパティ名と値を列挙することで、インスタンス生成と同時にプロパティへ値を代入できます。

作成したオブジェクトをコレクションに追加する

次に、生成したオブジェクトをListなどのコレクションに格納します。ここでもコレクション初期化子を使えば、Addメソッドを明示的に呼び出すことなく、1行で記述できます。

IList<Employee> empDetails = new List<Employee> {emp1, emp2 };

サンプルコード全体

ここまでの内容をまとめた、完全なコードは以下の通りです。

using System;
using System.Collections.Generic;
public class Demo {
    public static void Main() {
        var emp1 = new Employee() { EID = 001, EmpName = "Tim", EmpDept = "Finance"};
        var emp2 = new Employee() { EID = 002, EmpName = "Tom", EmpDept = "HR"};
        IList<Employee> empDetails = new List<Employee> {emp1, emp2 };

        // 従業員1の情報を表示
        Console.WriteLine("Employee One...");
        Console.WriteLine(emp1.EID);
        Console.WriteLine(emp1.EmpName);
        Console.WriteLine(emp1.EmpDept);

        // 従業員2の情報を表示
        Console.WriteLine("Employee Two...");
        Console.WriteLine(emp2.EID);
        Console.WriteLine(emp2.EmpName);
        Console.WriteLine(emp2.EmpDept);
    }
}

public class Employee {
    public int EID { get; set; }
    public string EmpName { get; set; }
    public string EmpDept { get; set; }
}

実行結果

Employee One...
1
Tim
Finance
Employee Two...
2
Tom
HR

ポイントまとめ

  • オブジェクト初期化子:new演算子と組み合わせて使うことで、コンストラクタ呼び出しと同時にプロパティへ値を設定できる。
  • コレクション初期化子:List<T>など、Addメソッドを持つコレクションに対して、波括弧内に要素を列挙するだけで初期化できる。
  • 従来のように各要素を個別にAddする必要がなく、コードが短くなり可読性も向上する。
  1. Pythonで従業員の重要度合計を求めるアルゴリズム(BFSを使った解法)

    問題の概要従業員情報を表すデータ構造を考えてみましょう。各従業員には「一意のID」「重要度(importance)の値」「直属の部下のIDリスト」が含まれています。例として、従業員1が従業員2の上司であり、従業員2が従業員3の上司であるケースを見てみます。それぞれの重要度が15、10、5である場合、データ構造は次のようになります。従業員1:[1, 15, [2]]従業員2:[2, 10, [3]]従業員3:[3, 5, []]このように会社全体の従業員情報と特定の従業員IDが与えられたとき、「その従業員本人と、すべての部下(間接的な部下も含む)の重要度の合計」を求めるのが本記事のゴールです。入

  2. Pythonのnamedtuple(ネームドタプル)とは?使い方をサンプルコード付きで解説

    Pythonのnamedtuple(ネームドタプル)とは namedtupleは、Pythonの標準ライブラリ「collections」モジュールに含まれるクラスの一つです。辞書型オブジェクトと同様にキーと値を持ちますが、タプルの特性も併せ持っているため、インデックスとキーの両方で要素にアクセスできるのが大きな特徴です。 namedtupleを使用するには、まずcollectionsモジュールをインポートする必要があります。 import collections 以下では、namedtupleクラスの主な機能と使い方を詳しく見ていきましょう。 namedtupleの要素へのアクセス方法 n