using System;
using System.Linq;
using System.Collections.Generic;
class ErrorLog
{
public int Line { get; set; }
public string Message { get; set; }
public ErrorLog(int line, string message)
{
this.Line = line;
this.Message = message;
}
}
class Logger
{
public static void Write(IEnumerable<ErrorLog> logs)
{
string output = string.Join("\n", logs.GroupBy(x => x.Line)
.Select(x => x.Key + "行目:" + string.Join("\n", x.Select(y => y.Message))));
Console.WriteLine(output);
}
}
public class Test
{
public static void Main()
{
var logs = new[]
{
new ErrorLog(3, "名前の値が不正です"),
new ErrorLog(3, "性別の値が不正です"),
new ErrorLog(3, "生年月日が不正です"),
new ErrorLog(4, "性別の値が不正です"),
};
Logger.Write(logs);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CgpjbGFzcyBFcnJvckxvZwp7CiAgICBwdWJsaWMgaW50IExpbmUgeyBnZXQ7IHNldDsgfQogICAgcHVibGljIHN0cmluZyBNZXNzYWdlIHsgZ2V0OyBzZXQ7IH0KCiAgICBwdWJsaWMgRXJyb3JMb2coaW50IGxpbmUsIHN0cmluZyBtZXNzYWdlKQogICAgewogICAgCXRoaXMuTGluZSA9IGxpbmU7CiAgICAJdGhpcy5NZXNzYWdlID0gbWVzc2FnZTsKICAgIH0KfQoKY2xhc3MgTG9nZ2VyCnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBXcml0ZShJRW51bWVyYWJsZTxFcnJvckxvZz4gbG9ncykKICAgIHsKICAgICAgICBzdHJpbmcgb3V0cHV0ID0gc3RyaW5nLkpvaW4oIlxuIiwgbG9ncy5Hcm91cEJ5KHggPT4geC5MaW5lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNlbGVjdCh4ID0+IHguS2V5ICsgIuihjOebru+8miIgKyBzdHJpbmcuSm9pbigiXG4iLCB4LlNlbGVjdCh5ID0+IHkuTWVzc2FnZSkpKSk7CgogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKG91dHB1dCk7CiAgICB9Cn0KCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgbG9ncyA9IG5ld1tdCgkJewoJCQluZXcgRXJyb3JMb2coMywgIuWQjeWJjeOBruWApOOBjOS4jeato+OBp+OBmSIpLAoJCQluZXcgRXJyb3JMb2coMywgIuaAp+WIpeOBruWApOOBjOS4jeato+OBp+OBmSIpLAoJCQluZXcgRXJyb3JMb2coMywgIueUn+W5tOaciOaXpeOBjOS4jeato+OBp+OBmSIpLAoJCQluZXcgRXJyb3JMb2coNCwgIuaAp+WIpeOBruWApOOBjOS4jeato+OBp+OBmSIpLAoJCX07CgkJTG9nZ2VyLldyaXRlKGxvZ3MpOwoJfQp9