Как использовать ListBox.Items.AddRange вместе с двумерным массивом? - PullRequest
1 голос
/ 30 января 2012

Вот массив:

// 2D array of strings.
string[,] calendar2D_Array = new string[33,13];

Затем я инициализирую массив множеством строк ...

Я пытаюсь разрешить моему списку использовать массив:

private void frmCalender_Load(object sender, EventArgs e)
{
    listBoxCalender.Items.AddRange(calendar2D_Array);
}

Компилятор теперь утверждает: не может конвертировать из 'string [, ]' в 'object []'

Если бы это был одномерный массив, не было бы проблем ... Как мне сделать так, чтобы он работал с двумерным массивом?

Ответы [ 2 ]

4 голосов
/ 30 января 2012

Вы можете использовать LINQ для выравнивания 2D-массива:

Enumerable.Range(0,33*13).Select(i => calendar2D_Array[i/13,i%13]).ToArray()

или

Enumerable.Range(0,33*13).Select(i => calendar2D_Array[i%33,i/33]).ToArray()
0 голосов
/ 23 марта 2019

Это работает для добавления одноразмерного массива целых в элемент управления Listbox. AddRange намного быстрее, чем использование цикла (т. Е. Listbox1.items.add (iArray (i))

ReDim Preserve iArray(iCount - 1) ' Number of items added to Array
ListBox1.BeginUpdate() 
ListBox1.Items.AddRange(iArray.Cast(Of Object).ToArray)
ListBox1.EndUpdate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...