C# foreach でConsole.WriteLine 関数化にしたい

タグの編集
投稿者 ケンケン  (社会人) 投稿日時 2022/8/24 14:53:09
            // データ作成
            var syainList = new List<Syain>();
            syainList.Add(new Syain("002", "山田", 35, "営業部"));
            syainList.Add(new Syain("004", "鈴木", 28, "営業部"));
            syainList.Add(new Syain("005", "高橋", 46, "経理部"));
            syainList.Add(new Syain("001", "鈴木", 32, "総務部"));
            syainList.Add(new Syain("003", "伊藤", 25, "開発部"));
            syainList.Add(new Syain("006", "佐藤", 30, "開発部"));
            syainList.Add(new Syain("007", "田中", 42, "開発部"));

           // ラムダ式(中身の表示)
            syainList.ForEach(n => Console.WriteLine("input data : id={0}, name={1}, age={2}, dept={3}", n.id, n.name, n.age, n.dept));
 
    Console~n.deptを関数にするにはどの様に記述すれば宜しいでしょうか?
    何方か、ご存知の方ご教授お願い致します。





    class Syain
    {

        // 
        public Syain(string id, string name, int age, string dept)
        {
            this.id = id;
            this.name = name;
            this.age = age;
            this.dept = dept;
        }

        public string id { get; set; }  // 社員ID
        public string name { get; set; }  // 名前
        public int age { get; set; }  // 年齢
        public string dept { get; set; }  // 部署
    }
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2022/8/24 19:41:32
> Console~n.deptを関数にするにはどの様に記述すれば宜しいでしょうか?
質問の意図が良く分かりませんが、class Syain 内に下記を実装しておけば、
『syainList.ForEach(Console.WriteLine);』と書けます。
public override string ToString() => $"input data : id={id}, name={name}, age={age}, dept={dept}";


あるいは『syainList.ForEach(Foo);』と書きたければこう。
static void Foo(Syain n)
{
    Console.WriteLine(
        "input data : id={0}, name={1}, age={2}, dept={3}",
        n.id, n.name, n.age, n.dept);
}
投稿者 ケンケン  (社会人) 投稿日時 2022/8/26 09:41:39
色々と参考に成りました。
ありがとうございます。