List<string> or List<List<string>>. However, you can't have different types. What you are doing is a bad practice. If your goal is to create some sort of tree structure, make a class to represent each node, which can contain children. Otherwise, if you just want a fixed-depth list of lists of strings, use List<List<string>>.