>>682
C#じゃないけどSQLアンチパターン読んだほうがいい

var map = new Dictionary<string, Func<Test, int>() {
["国語"] = t => t.国語,
["数学"] = t => t.数学,
};

var ans = map.Select(e => new {
科目 = e.Key,
赤点人数 = TestList.Count(t => e.Value(t) < 30),
});

foreach(var a in ans)
Console.WriteLine($"{a.科目}: {a.赤点人数} 人");