Первое, что нужно понять, что List<T>
и T[]
не эквивалентны * (* см сноску). Ваш код, похоже, хочет обрабатывать список как массив, и это просто не сработает.
List<List<Button>>
можно использовать следующим образом:
var listOfLists = new List<List<Button>>();
var listOfButtons = new List<Button>();
listOfButtons.Add(new Button());
listOfLists.Add(listOfButtons);
И вы можете продолжать добавлять кнопки в список кнопки, создать несколько списков кнопок, добавить кнопки для тех, и добавить их все в список списков, и вы можете сделать все это в петле или вложенных циклах.
Массив Button[][]
рассматривается по-разному. Он не имеет динамического размера и будет использоваться по-другому.
var arrayOfArrays = new Button[10][];
var arrayOfButtons = new Button[3];
arrayOfButtons[0] = new Button();
arrayOfButtons[1] = new Button();
arrayOfButtons[2] = new Button();
arrayOfArrays[0] = arrayOfButtons;
И у вас еще есть еще 9 массивов кнопок, которые вы можете установить (в этом примере).
Ваш код пытается добавить массив кнопок в список, ожидающий список кнопок. И есть еще несколько вещей для сортировки, но основная идея состоит в том, что вы смешиваете эти две разные коллекции, а компилятор громко жалуется.
Чтобы исправить свой код, начните с использования подходящих типов для выполнения необходимых действий, а затем последовательно и правильно используйте эти типы в своей логике.
Как стартер, посмотрите, как далеко вы получите эти фрагменты.
// using List<List<Button>>
var buttonLists = new List<List<Button>>();
for (int r = 0; r < row; r++)
{
var buttonRow = new List<Button>();
buttonLists.Add(buttonRow);
for (int c = 0; c < col; c++)
{
buttonRow.Add(new Button());
}
}
// using Button[][]
var buttonArrays = new Button[row][];
for (int r = 0; r < row; r++)
{
buttonArrays[r] = new Button[col];
for (int c = 0; c < col; c++)
{
buttonArrays[r][c] = new Button();
}
}
* Если вы не ссылки на них через общий тип интерфейса, в этом случае они все еще не эквивалентны, но совместимы, но это выходит за рамки этого ответа и не особенно полезно в этом контексте, учитывая задействованные фрагменты кода.
Довольно смущенный тем, что вы пытаетесь сделать и в чем проблема. Возможно, измените переменную кнопок на что-то еще? buttonList? – RyPope
@RyPope изменил его – Tacit