the ToString() method of an object returns the type name. so you are building a list of type names. you object appear to ne
var fields = new object[]
{
new string[] {"a","b"},
new int[] {1,2,3}
};
as its two arrays of different types, what was the output List<string> supposed to be?