If you KNOW for certain that you want exactly ten lists, you can use an array instantiated to 10 items, each a list of string.
List<string> [] items = new List<string> [10];
Each List is not initialized, so you need to initialize your list before you can use it and each list can be accessed via normal indexer syntax..
if (items[0] == null)
items[0] = new List<string>();
Once initialized, you can fill in your data.
items[0].Add("another string");
If you wanted to pre-initialize each list so that you do not get a NullReferenceException, do so in a loop.
for (var i = 0; i < items.Length; i++)
items[i] = new List<string>();
However, if you think that your items may need to hold more List<string> down the road, just simply use a list of lists.
List<List<string>> items = new List<List<string>>();
List wraps array and gives you some nice syntactic sugar and optimizations for expanding arrays which makes your life a lot easier. You can still use indexer syntax to access each list within your list.
if (items[0] == null)
items[0] = new List<string>();
items[0].Add("another string").
List<string[]> item = new List<new string[10]>();or something similaritem[1][1];or similar syntax. Or just use a simpleList<string>, unless you really want a List that contains 10 element string arrays, where each element in theList<T>is a 10 element string array.List<T>can contain any number of elements - it's dynamic. Are you saying you want 10 separate instances of aList<T>, or just one with a dynamic number of elements?