2013-03-26 3 views
0

Я хочу добавить свои кнопки в этом спискеНаполнение вложенного списка

List<List<Button>> buttonss = new List<List<Button>>(); 

Это, как я создаю свои кнопки:

Button[][] buttons; 

В методе (также попытаться заполнить список, но это не права):

for (int r = 0; r < row; r++) 
    { 
     for (int c = 0; c < col; c++) 
      { 
      buttons[r][c] = new Button(); 
      buttonss.Add(buttons[r][c]); 
      } 
    } 

Как я могу заполнить этот список с помощью этой кнопки массива (мой массив должен быть Button[][] в d не Button[,] как это сделает мою жизнь легче, когда я делаю другие вещи, как XML-сериализации

+2

Я надеюсь, что вы сделали 'кнопки = новая кнопка [] [строка]; и' кнопки [г] = новая кнопка [Col]; 'первый – Nolonar

+1

@Nolonar Мне нравится, что ваш комментарий заставляет меня чувствовать, что судьба мира основывается на его правильном воплощении. В основном потому, что это так. : S – Devin

+0

@Nolonar Да все, что сделано, я не вставлял весь код – Tacit

ответ

1

Я не уверен, почему вы пытаетесь сохранить эти два отдельных пути, но если вы действительно нужно, то вам нужно инициализировать каждый внутренний массив и список:

buttons = new Button[row][]; 
for (int r = 0; r < row; r++) 
{ 
    buttons[r] = new Button[col]; 
    List<Button> rowList = new List<Button>(); 
    buttonss.Add(rowList);  
    for (int c = 0; c < col; c++) 
    { 
    buttons[r][c] = new Button(); 
    rowList.Add(buttons[r][c]); 
    } 
} 

Другой способ сделать это было бы просто быть в магазине в рваной массиве и конвертировать в список (или наоборот):

// From List<List> to Jagged Array 
buttons = buttonss.Select(b=>b.ToArray()).ToArray(); 

// From Jagged Array to List<List> 
buttonss = buttons.Select(b=>b.ToList()).ToList(); 
1

Вы можете использовать LINQ Select:

buttonss = buttons.Select(b => b.ToList()).ToList(); 
Смежные вопросы