using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using KGySoft.CoreLibraries;
public static void Main()
var strings = new List<List<List<string>>>{new(){new() {"1", "2", "3"}, new() {"4", "5", "6"}}};
var ints = strings.Convert<List<List<List<int>>>>();
Console.WriteLine($"To {ints.GetType().GetName(TypeNameKind.ShortName)} result: {Dump(ints)}");
private static string Dump(object o)
var convertible = o as IConvertible;
return convertible.ToString(CultureInfo.InvariantCulture);
var enumerable = o as IEnumerable;
return $"[{enumerable.Cast<object>().Select(Dump).Join(", ")}]";
return $"{{{o.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).Select(p => $"{p.Name} = {Dump(p.GetValue(o))}").Join(", ")}}}";