>>108
こんなので出来ない?
検証してないので知らんけど
public class Detail
{
  public static Detail RetrieveFromDictionay(Dictionary<string, object> dic, int index)
  {
    var d = new Detail();
    foreach (PropertyInfo info in typeof(Detail).GetProperties(BindingFlags.Public | BindingFlags.Instance))
    {
      var key = $"{index}{info.Name}";
      object obj;
      if (dic.TryGetValue(key, out obj))
        if (obj.GetType() == info.PropertyType) info.SetValue(d, obj);
    }
    return d;
  }
  public DateTime 開催日 { get; set; }
  public string 場所 { get; set; }
  public string 名前 { get; set; }
  public DateTime 誕生日 { get; set; }
  public int 年齢 { get; set; }
  public string 備考 { get; set; }
}