Вам понадобится:
IList<IList<string>> matrix = new List<IList<string>>();
но тогда вы можете произойти , чтобы всегда добавлять List<string>
для каждого элемента.
Причина, по которой это не сработает:
// Invalid
IList<IList<string>> matrix = new List<List<string>>();
в таком случае было бы разумно написать:
// string[] implements IList<string>
matrix.Add(new string[10]);
... но это нарушило бы тот факт, что список действительно a List<List<string>>
- он должен содержать List<string>
значений, а не просто any IList<string>
. .. тогда как мое объявление вверху просто создает List<IList<string>>
, так что вы можете добавить в него строковый массив без нарушения типа безопасности.
Конечно, вы можете изменить, чтобы вместо этого использовать конкретный тип в вашем объявлении:
IList<List<string>> matrix = new List<List<string>>();
или даже:
List<List<string>> matrix = new List<List<string>>();